CINXE.COM
SitePoint
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.13.3"/><meta name="theme-color" content="#3a3a3a"/><meta name="robots" content="index, follow" data-gatsby-head="true"/><meta name="description" content="Learn Web Design & Development with SitePoint tutorials, courses and books - HTML5, CSS3, JavaScript, PHP, mobile app development, Responsive Web Design" data-gatsby-head="true"/><meta name="twitter:card" content="summary_large_image" data-gatsby-head="true"/><meta name="twitter:title" content="SitePoint – Learn HTML, CSS, JavaScript, PHP, Ruby & Responsive Design" data-gatsby-head="true"/><meta property="twitter:account_id" content="15743570" data-gatsby-head="true"/><meta name="twitter:description" content="Learn Web Design & Development with SitePoint tutorials, courses and books - HTML5, CSS3, JavaScript, PHP, mobile app development, Responsive Web Design" data-gatsby-head="true"/><meta property="og:title" content="SitePoint – Learn HTML, CSS, JavaScript, PHP, Ruby & Responsive Design" data-gatsby-head="true"/><meta property="og:description" content="Learn Web Design & Development with SitePoint tutorials, courses and books - HTML5, CSS3, JavaScript, PHP, mobile app development, Responsive Web Design" data-gatsby-head="true"/><meta name="seznam-wmt" content="5zAqdqc7d6XBYxoDyjBsJNkcAohm9QQU" data-gatsby-head="true"/><meta name="yandex-verification" content="afa5fceebc44c49d" data-gatsby-head="true"/><style data-href="/styles.4d6f4e406004d7515152.css" data-identity="gatsby-global-css">@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-cyrillic-ext-wght-normal-92dcb004dd66a14761da87698426da2b.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-cyrillic-wght-normal-dd1eb0afa10711830d27117387b95dc0.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-greek-ext-wght-normal-f8ed8c6b512a482bd1ae4d471ed6c3e2.woff2) format("woff2-variations");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-greek-wght-normal-8cf014c12c3518f736abd4ca7fa6721d.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-vietnamese-wght-normal-03627a8b5fe27d055e5ce0cb06ca0f14.woff2) format("woff2-variations");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-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-latin-ext-wght-normal-fbd6dc6ea3a2a849b6fc2c03391bece0.woff2) format("woff2-variations");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-display:swap;font-family:Inter Variable;font-style:normal;font-weight:100 900;src:url(/static/inter-latin-wght-normal-e62404dc3261fb537f3a211edf6a2682.woff2) format("woff2-variations");unicode-range:u+00??,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} /* ! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e0dfe1;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#7f7d83}input::placeholder,textarea::placeholder{color:#7f7d83}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#4e4d51;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,input:where(:not([type])):focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:#4e4d51;opacity:1}input::placeholder,textarea::placeholder{color:#4e4d51;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%234E4D51' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#4e4d51;border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media (forced-colors:active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}:root{--typescale:1.15;--baselineratio:1.77778;--basegrid:32px;--basegrid-tablet:28px;--basegrid-laptop:32px;--basegrid-wide:36px;--baseline:calc(var(--baselineratio)*1rem);--basefont:calc(var(--basegrid)/var(--baselineratio));--basefont-tablet:calc(var(--basegrid-tablet)/var(--baselineratio));--basefont-laptop:calc(var(--basegrid-laptop)/var(--baselineratio));--basefont-wide:calc(var(--basegrid-wide)/var(--baselineratio));--gridspace:calc((var(--baselineratio)/2)*1rem);--navbar-height:calc(var(--baseline)*2);--navbar:56px;--post-sidebar:350px;--post-body:588px}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;margin:0;padding:0;text-rendering:optimizeLegibility}body{--tw-text-opacity:1;color:rgb(31 35 39/var(--tw-text-opacity));font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-weight:400}a,button{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}#gatsby-focus-wrapper{display:flex;flex-direction:column;min-height:100vh}@media (min-width:1024px){:root{--navbar:58px}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(80,150,241,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(80,150,241,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.aspect-h-5{--tw-aspect-h:5}.aspect-h-9{--tw-aspect-h:9}.aspect-h-\[264\]{--tw-aspect-h:264}.aspect-w-16{--tw-aspect-w:16;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);position:relative}.aspect-w-16>*{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.aspect-w-4{--tw-aspect-w:4;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);position:relative}.aspect-w-4>*{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.aspect-w-\[353\]{--tw-aspect-w:353;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);position:relative}.aspect-w-\[353\]>*{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.form-input,.form-multiselect,.form-select,.form-textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#4e4d51;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}.form-input:focus,.form-multiselect:focus,.form-select:focus,.form-textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:#4e4d51;opacity:1}.form-input::placeholder,.form-textarea::placeholder{color:#4e4d51;opacity:1}.form-input::-webkit-datetime-edit-fields-wrapper{padding:0}.form-input::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}.form-input::-webkit-datetime-edit{display:inline-flex}.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-meridiem-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}.btn{--tw-border-opacity:1;background-color:rgb(249 248 249/var(--tw-bg-opacity));border-color:rgb(249 248 249/var(--tw-border-opacity));border-radius:.125rem;border-style:solid;border-width:2px;cursor:pointer;display:inline-block;font-size:.875rem;font-weight:500;line-height:1.25rem;padding:.25rem .5rem;text-align:center;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn,.btn:focus,.btn:hover{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(31 30 32/var(--tw-text-opacity))}.btn:focus,.btn:hover{background-color:rgb(224 223 225/var(--tw-bg-opacity))}.btn:focus{outline:2px dotted #37363a;outline-offset:2px}.btn.btn-outline[disabled],.btn[disabled]{cursor:not-allowed;pointer-events:none}.btn.btn-outline[disabled],.btn.btn-outline[disabled]:focus,.btn.btn-outline[disabled]:hover,.btn[disabled],.btn[disabled]:focus,.btn[disabled]:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(249 248 249/var(--tw-bg-opacity));border-color:rgb(249 248 249/var(--tw-border-opacity));color:rgb(127 125 131/var(--tw-text-opacity))}.btn-primary{background-color:rgb(114 50 250/var(--tw-bg-opacity));border-color:rgb(114 50 250/var(--tw-border-opacity))}.btn-primary,.btn-primary:focus,.btn-primary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn-primary:focus,.btn-primary:hover{background-color:rgb(152 100 255/var(--tw-bg-opacity));border-color:rgb(152 100 255/var(--tw-border-opacity))}.btn-primary.btn-outline{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(114 50 250/var(--tw-border-opacity));color:rgb(114 50 250/var(--tw-text-opacity))}.btn-primary.btn-outline:focus,.btn-primary.btn-outline:hover{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(152 100 255/var(--tw-border-opacity));color:rgb(152 100 255/var(--tw-text-opacity))}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.\!sticky{position:sticky!important}.sticky{position:sticky}.inset-0{inset:0}.\!left-2{left:.5rem!important}.\!left-3{left:.75rem!important}.\!left-4{left:1rem!important}.\!top-\[calc\(var\(--navbar\)_\+_1\.5rem\)\]{top:calc(var(--navbar) + 1.5rem)!important}.-right-\[12\.370625rem\]{right:-12.370625rem}.-right-\[8\.28125rem\]{right:-8.28125rem}.-top-\[4\.601875rem\]{top:-4.601875rem}.-top-\[9\.4375rem\]{top:-9.4375rem}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-4{left:1rem}.left-7{left:1.75rem}.left-\[65\%\]{left:65%}.left-full{left:100%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-16{top:4rem}.top-32{top:8rem}.top-8{top:2rem}.top-\[-17px\]{top:-17px}.top-full{top:100%}.top-navbar{top:var(--navbar)}.isolate{isolation:isolate}.-z-10{z-index:-10}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[10001\]{z-index:10001}.z-\[10003\]{z-index:10003}.z-\[10\]{z-index:10}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.z-\[5\]{z-index:5}.order-1{order:1}.order-2{order:2}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-auto{margin:auto}.-mx-5{margin-left:-1.25rem;margin-right:-1.25rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-\[32px\]{margin-bottom:-32px;margin-top:-32px}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-bottom:0;margin-top:0}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.-ml-16{margin-left:-4rem}.-ml-2{margin-left:-.5rem}.-ml-\[100\%\]{margin-left:-100%}.-mr-4{margin-right:-1rem}.-mt-20{margin-top:-5rem}.-mt-6{margin-top:-1.5rem}.-mt-px{margin-top:-1px}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-\[10px\]{margin-bottom:10px}.mb-\[144px\]{margin-bottom:144px}.mb-\[172px\]{margin-bottom:172px}.mb-navbar{margin-bottom:var(--navbar)}.ml-0{margin-left:0}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-\[-15px\]{margin-left:-15px}.ml-auto{margin-left:auto}.ml-gs-1{margin-left:var(--gridspace)}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-2\.5{margin-right:.625rem}.mr-4{margin-right:1rem}.mr-8{margin-right:2rem}.mr-auto{margin-right:auto}.mt-0{margin-top:0}.mt-10{margin-top:2.5rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[124px\]{margin-top:124px}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.size-10{height:2.5rem;width:2.5rem}.size-12{height:3rem;width:3rem}.size-14{height:3.5rem;width:3.5rem}.size-16{height:4rem;width:4rem}.size-3{height:.75rem;width:.75rem}.size-4{height:1rem;width:1rem}.size-5{height:1.25rem;width:1.25rem}.size-6{height:1.5rem;width:1.5rem}.size-7{height:1.75rem;width:1.75rem}.size-8{height:2rem;width:2rem}.size-\[18px\]{height:18px;width:18px}.size-\[22px\]{height:22px;width:22px}.size-\[34px\]{height:34px;width:34px}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--navbar-height\]{height:var(--navbar-height)}.h-\[100px\]{height:100px}.h-\[163px\]{height:163px}.h-\[1px\]{height:1px}.h-\[24px\]{height:24px}.h-\[36px\]{height:36px}.h-\[480px\]{height:480px}.h-\[56px\]{height:56px}.h-\[600px\]{height:600px}.h-\[64px\]{height:64px}.h-\[84px\]{height:84px}.h-\[90px\]{height:90px}.h-auto{height:auto}.h-full{height:100%}.h-navbar-offset{height:calc(100% - var(--navbar))}.h-screen{height:100vh}.max-h-\[72px\]{max-height:72px}.max-h-full{max-height:100%}.max-h-navbar-offset{max-height:calc(100% - var(--navbar))}.max-h-screen{max-height:100vh}.max-h-screen-navbar-offset{max-height:calc(100vh - var(--navbar))}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-12{min-height:3rem}.min-h-14{min-height:3.5rem}.min-h-32{min-height:8rem}.min-h-5{min-height:1.25rem}.min-h-6{min-height:1.5rem}.min-h-8{min-height:2rem}.min-h-\[145px\]{min-height:145px}.min-h-\[250px\]{min-height:250px}.min-h-\[600px\]{min-height:600px}.min-h-\[662px\]{min-height:662px}.min-h-\[inherit\]{min-height:inherit}.w-10{width:2.5rem}.w-2{width:.5rem}.w-24{width:6rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[115\.5px\]{width:115.5px}.w-\[115px\]{width:115px}.w-\[120px\]{width:120px}.w-\[150px\]{width:150px}.w-\[166px\]{width:166px}.w-\[180px\]{width:180px}.w-\[220px\]{width:220px}.w-\[282px\]{width:282px}.w-\[305px\]{width:305px}.w-\[320px\]{width:320px}.w-\[328px\]{width:328px}.w-\[36px\]{width:36px}.w-\[506px\]{width:506px}.w-\[728px\]{width:728px}.w-\[75\%\]{width:75%}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-\[233px\]{min-width:233px}.min-w-\[282px\]{min-width:282px}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.max-w-\[1084px\]{max-width:1084px}.max-w-\[1090px\]{max-width:1090px}.max-w-\[353px\]{max-width:353px}.max-w-\[600px\]{max-width:600px}.max-w-\[680px\]{max-width:680px}.max-w-full{max-width:100%}.max-w-none{max-width:none}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-screen-xl{max-width:1248px}.max-w-screen-xs{max-width:320px}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-80{flex-basis:20rem}.basis-\[120px\]{flex-basis:120px}.origin-center{transform-origin:center}.origin-top-center{transform-origin:top center}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y:0.25rem}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-y-0{--tw-scale-y:0}.scale-y-0,.scale-y-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-y-100{--tw-scale-y:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.columns-1{-moz-columns:1;column-count:1}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[22px\]{gap:22px}.gap-\[48px\]{gap:48px}.gap-\[6px\]{gap:6px}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-20{-moz-column-gap:5rem;column-gap:5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-16{row-gap:4rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.gap-y-\[19px\]{row-gap:19px}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.375rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.\!rounded{border-radius:.25rem!important}.\!rounded-\[10px\]{border-radius:10px!important}.\!rounded-lg{border-radius:.5rem!important}.\!rounded-md{border-radius:.375rem!important}.\!rounded-xl{border-radius:.75rem!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-\[54px\]{border-radius:54px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-\[1px\]{border-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-none{border-style:none}.\!border-danger-9{--tw-border-opacity:1!important;border-color:rgb(229 72 77/var(--tw-border-opacity))!important}.\!border-neutral-12{--tw-border-opacity:1!important;border-color:rgb(31 35 39/var(--tw-border-opacity))!important}.border-danger-11{--tw-border-opacity:1;border-color:rgb(198 42 47/var(--tw-border-opacity))}.border-danger-alpha-8{border-color:#d100036f}.border-danger-alpha-9{border-color:#db0007b7}.border-gray-100{--tw-border-opacity:1;border-color:rgb(249 248 249/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(224 223 225/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(127 125 131/var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(78 77 81/var(--tw-border-opacity))}.border-neutral-4{--tw-border-opacity:1;border-color:rgb(235 235 239/var(--tw-border-opacity))}.border-neutral-alpha-12{border-color:#000509e3}.border-neutral-alpha-4{border-color:#02023414}.border-neutral-alpha-5{border-color:#0000301b}.border-neutral-alpha-6{border-color:#01012e22}.border-neutral-alpha-7{border-color:#01062f2c}.border-neutral-alpha-8{border-color:#00082f46}.border-primary-alpha-12{border-color:#11013cf0}.border-primary-alpha-6{border-color:#3a07e43b}.border-primary-alpha-7{border-color:#3602de52}.border-primary-alpha-8{border-color:#3c02d973}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-b-gray-200{--tw-border-opacity:1;border-bottom-color:rgb(224 223 225/var(--tw-border-opacity))}.border-b-transparent{border-bottom-color:transparent}.border-r-transparent{border-right-color:transparent}.border-t-neutral-5{--tw-border-opacity:1;border-top-color:rgb(228 228 233/var(--tw-border-opacity))}.border-t-neutral-alpha-4{border-top-color:#02023414}.\!bg-neutral-12{--tw-bg-opacity:1!important;background-color:rgb(31 35 39/var(--tw-bg-opacity))!important}.\!bg-neutral-alpha-3{background-color:#00003b0d!important}.\!bg-transparent{background-color:transparent!important}.bg-\[\#f1f1f1\]{--tw-bg-opacity:1;background-color:rgb(241 241 241/var(--tw-bg-opacity))}.bg-\[\#fcfcfd\]{--tw-bg-opacity:1;background-color:rgb(252 252 253/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-danger-9{--tw-bg-opacity:1;background-color:rgb(229 72 77/var(--tw-bg-opacity))}.bg-danger-alpha-3{background-color:#ff010110}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(249 248 249/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(224 223 225/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(78 77 81/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 54 58/var(--tw-bg-opacity))}.bg-neutral-1{--tw-bg-opacity:1;background-color:rgb(252 252 253/var(--tw-bg-opacity))}.bg-neutral-12{--tw-bg-opacity:1;background-color:rgb(31 35 39/var(--tw-bg-opacity))}.bg-neutral-2{--tw-bg-opacity:1;background-color:rgb(249 249 251/var(--tw-bg-opacity))}.bg-neutral-3{--tw-bg-opacity:1;background-color:rgb(242 242 245/var(--tw-bg-opacity))}.bg-neutral-9{--tw-bg-opacity:1;background-color:rgb(139 141 152/var(--tw-bg-opacity))}.bg-neutral-alpha-2{background-color:#05055806}.bg-neutral-alpha-3{background-color:#00003b0d}.bg-neutral-alpha-8{background-color:#00082f46}.bg-neutral-inverse-1{--tw-bg-opacity:1;background-color:rgb(24 24 26/var(--tw-bg-opacity))}.bg-overlay-dark-11{background-color:rgba(0,0,0,.61)}.bg-panel-1{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgb(114 50 250/var(--tw-bg-opacity))}.bg-primary-9{--tw-bg-opacity:1;background-color:rgb(105 62 221/var(--tw-bg-opacity))}.bg-primary-alpha-3{background-color:#3705ff0f}.bg-spBlack{--tw-bg-opacity:1;background-color:rgb(35 35 35/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-neutral-9{fill:#8b8d98}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.\!p-0{padding:0!important}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[0\.15rem\]{padding:.15rem}.p-gs-1{padding:var(--gridspace)}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-11{padding-left:2.75rem;padding-right:2.75rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[20px\]{padding-left:20px;padding-right:20px}.px-\[30px\]{padding-left:30px;padding-right:30px}.px-\[38px\]{padding-left:38px;padding-right:38px}.px-gs-1{padding-left:var(--gridspace);padding-right:var(--gridspace)}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-\[32px\]{padding-bottom:32px;padding-top:32px}.py-\[6px\]{padding-bottom:6px;padding-top:6px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-8{padding-bottom:2rem}.pb-\[124px\]{padding-bottom:124px}.pb-\[160px\]{padding-bottom:160px}.pb-px{padding-bottom:1px}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-11{padding-left:2.75rem}.pl-12{padding-left:3rem}.pl-16{padding-left:4rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pl-\[38px\]{padding-left:38px}.pl-\[6px\]{padding-left:6px}.pr-1{padding-right:.25rem}.pr-11{padding-right:2.75rem}.pr-12{padding-right:3rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pr-\[12px\]{padding-right:12px}.pr-\[38px\]{padding-right:38px}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-\[153px\]{padding-top:153px}.pt-\[89px\]{padding-top:89px}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-1{font-size:12px;letter-spacing:0;line-height:16px}.text-10{font-size:56px;letter-spacing:-.82px;line-height:64px}.text-2{font-size:14px;letter-spacing:0;line-height:20px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3{font-size:16px;letter-spacing:-.1px;line-height:24px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4{font-size:18px;letter-spacing:-.2px;line-height:28px}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5{font-size:24px;letter-spacing:-.28px;line-height:36px}.text-7{font-size:36px;letter-spacing:-.32px;line-height:42px}.text-8{font-size:40px;letter-spacing:-.42px;line-height:48px}.text-\[\.35rem\]{font-size:.35rem}.text-\[0\.65rem\],.text-\[\.65rem\]{font-size:.65rem}.text-\[14px\]{font-size:14px}.text-base{font-size:1rem;line-height:1.5rem}.text-base\/tight{font-size:1rem;line-height:1.25}.text-jar-2{font-size:12px;letter-spacing:0;line-height:16px}.text-jar-3{font-size:14px;letter-spacing:0;line-height:20px}.text-jar-4{font-size:16px;letter-spacing:0;line-height:24px}.text-jar-5{font-size:18px;letter-spacing:0;line-height:28px}.text-jar-6{font-size:20px;letter-spacing:-.1px;line-height:28px}.text-jar-7{font-size:24px;letter-spacing:-.1px;line-height:36px}.text-jar-8{font-size:32px;letter-spacing:0;line-height:40px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-sm\/tight{font-size:.875rem;line-height:1.25}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.not-italic{font-style:normal}.leading-6{line-height:1.5rem}.leading-\[0\]{line-height:0}.leading-\[58px\]{line-height:58px}.leading-none{line-height:1}.leading-tight{line-height:1.25}.-tracking-tight{letter-spacing:.025em}.tracking-\[-0\.16px\]{letter-spacing:-.16px}.tracking-\[-0\.4px\]{letter-spacing:-.4px}.tracking-\[-1\.92px\]{letter-spacing:-1.92px}.tracking-tight{letter-spacing:-.025em}.\!text-neutral-12{--tw-text-opacity:1!important;color:rgb(31 35 39/var(--tw-text-opacity))!important}.text-\[\#ffcc01\]{--tw-text-opacity:1;color:rgb(255 204 1/var(--tw-text-opacity))}.text-\[red\]{--tw-text-opacity:1;color:rgb(255 0 0/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-body{--tw-text-opacity:1;color:rgb(31 30 32/var(--tw-text-opacity))}.text-current{color:currentColor}.text-danger-11{--tw-text-opacity:1;color:rgb(198 42 47/var(--tw-text-opacity))}.text-danger-9{--tw-text-opacity:1;color:rgb(229 72 77/var(--tw-text-opacity))}.text-danger-alpha-11{color:#bb0007d5}.text-gray-100{--tw-text-opacity:1;color:rgb(249 248 249/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(224 223 225/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(175 174 178/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(127 125 131/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 54 58/var(--tw-text-opacity))}.text-neutral-1{--tw-text-opacity:1;color:rgb(252 252 253/var(--tw-text-opacity))}.text-neutral-10{--tw-text-opacity:1;color:rgb(126 128 138/var(--tw-text-opacity))}.text-neutral-11{--tw-text-opacity:1;color:rgb(96 100 108/var(--tw-text-opacity))}.text-neutral-12{--tw-text-opacity:1;color:rgb(31 35 39/var(--tw-text-opacity))}.text-neutral-9{--tw-text-opacity:1;color:rgb(139 141 152/var(--tw-text-opacity))}.text-neutral-alpha-11{color:#0002119d}.text-neutral-alpha-12{color:#000509e3}.text-neutral-alpha-6{color:#01012e22}.text-neutral-alpha-8{color:#00082f46}.text-neutral-alpha-9{color:#00041d74}.text-neutral-inverse-12{--tw-text-opacity:1;color:rgb(244 246 246/var(--tw-text-opacity))}.text-primary-100{--tw-text-opacity:1;color:rgb(238 230 255/var(--tw-text-opacity))}.text-primary-11{--tw-text-opacity:1;color:rgb(86 53 178/var(--tw-text-opacity))}.text-primary-12{--tw-text-opacity:1;color:rgb(30 16 70/var(--tw-text-opacity))}.text-primary-300{--tw-text-opacity:1;color:rgb(201 173 255/var(--tw-text-opacity))}.text-primary-7{--tw-text-opacity:1;color:rgb(191 174 245/var(--tw-text-opacity))}.text-primary-9{--tw-text-opacity:1;color:rgb(105 62 221/var(--tw-text-opacity))}.text-primary-alpha-11{color:#2b019dcc}.text-primary-alpha-12{color:#11013cf0}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.placeholder-neutral-alpha-11::-moz-placeholder{color:#0002119d}.placeholder-neutral-alpha-11::placeholder{color:#0002119d}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-80{opacity:.8}.\!shadow-\[0px_0px_0px_2px_\#02023414\]{--tw-shadow:0px 0px 0px 2px #02023414!important;--tw-shadow-colored:0px 0px 0px 2px var(--tw-shadow-color)!important}.\!shadow-\[0px_0px_0px_2px_\#02023414\],.\!shadow-\[0px_0px_0px_2px_\#ff00001a\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!shadow-\[0px_0px_0px_2px_\#ff00001a\]{--tw-shadow:0px 0px 0px 2px #ff00001a!important;--tw-shadow-colored:0px 0px 0px 2px var(--tw-shadow-color)!important}.shadow-1{--tw-shadow:0px 2px 3px -2px rgba(0,0,61,.05),0px 3px 12px -4px rgba(0,0,0,.05),0px 4px 16px -8px rgba(0,0,0,.08);--tw-shadow-colored:0px 2px 3px -2px var(--tw-shadow-color),0px 3px 12px -4px var(--tw-shadow-color),0px 4px 16px -8px var(--tw-shadow-color)}.shadow-1,.shadow-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2{--tw-shadow:0px 8px 40px 0px rgba(0,0,61,.05),0px 12px 32px -16px rgba(0,0,0,.05);--tw-shadow-colored:0px 8px 40px 0px var(--tw-shadow-color),0px 12px 32px -16px var(--tw-shadow-color)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_2px_10px_0_rgba\(0\2c 0\2c 0\2c 0\.2\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_10px_0_rgba\(0\2c 0\2c 0\2c 0\.2\)\]{--tw-shadow:0 2px 10px 0 rgba(0,0,0,.2);--tw-shadow-colored:0 2px 10px 0 var(--tw-shadow-color)}.shadow-\[0px_0px_0px_2px_\#ff00001a\]{--tw-shadow:0px 0px 0px 2px #ff00001a;--tw-shadow-colored:0px 0px 0px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0px_12px_60px_0px_\#0000000A\2c 0px_12px_32px_-16px_\#0000001A\]{--tw-shadow:0px 12px 60px 0px #0000000a,0px 12px 32px -16px #0000001a;--tw-shadow-colored:0px 12px 60px 0px var(--tw-shadow-color),0px 12px 32px -16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0px_1px_2px_0px_\#0000000F_0px_0px_0px_1px_\#00000000\]{--tw-shadow:0px 1px 2px 0px #0000000f 0px 0px 0px 1px #00000000;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.shadow-\[0px_1px_2px_0px_\#0000000F_0px_0px_0px_1px_\#00000000\],.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-gray-900\/5{--tw-ring-color:hsla(0,0%,9%,.05)}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[top\]{transition-duration:.15s;transition-property:top;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.container{margin-left:auto;margin-right:auto;max-width:1248px;padding-left:1.5rem;padding-right:1.5rem;width:100%}@media (min-width:1248px){.container-12{margin-left:auto;margin-right:auto;padding-left:0;padding-right:0;width:1200px}}.scrollbar-none{scrollbar-width:none}.cover-spine-overlay{position:relative}.cover-spine-overlay:after{background:linear-gradient(90deg,rgba(0,0,0,.3),rgba(73,36,36,0) 1%,hsla(0,0%,98%,.23) 2.5%,rgba(0,0,0,.1) 3.4%,hsla(0,0%,98%,.1) 4.2%,rgba(0,0,0,.1) 5.6%,hsla(0,0%,98%,.2) 6.8%,transparent 25%,transparent 30%,rgba(0,0,0,.2));content:"";height:100%;left:0;position:absolute;top:0;width:100%}.rich-text a{--tw-text-opacity:1;color:rgb(86 53 178/var(--tw-text-opacity));text-decoration-line:underline;transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.rich-text a:hover{--tw-text-opacity:1;color:rgb(30 16 70/var(--tw-text-opacity))}.rich-text a>code{--tw-bg-opacity:1;background-color:rgb(243 240 255/var(--tw-bg-opacity));color:currentColor;font-weight:600}.remove-input-txt-border input[type=text]:focus{box-shadow:none}.text-1-regular{font-weight:400}.text-1-medium,.text-1-regular{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:12px;font-style:normal;line-height:16px}.text-1-medium{font-weight:500}.text-1-semi-bold{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:12px;font-style:normal;font-weight:600;line-height:16px}.text-2-regular{font-weight:400}.text-2-medium,.text-2-regular{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:14px;font-style:normal;line-height:20px}.text-2-medium{font-weight:500}.text-2-semi-bold{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.text-3-regular{font-weight:400}.text-3-medium,.text-3-regular{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:16px;font-style:normal;letter-spacing:-.1px;line-height:24px}.text-3-medium{font-weight:500}.text-5-regular{font-weight:400}.text-5-bold,.text-5-regular{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:24px;font-style:normal;letter-spacing:-.28px;line-height:36px}.text-5-bold,.text-9-bold{font-weight:700}.text-9-bold{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:48px;font-style:normal;letter-spacing:-.82px;line-height:56px}@media only screen and (min-width:0px) and (min-height:0px){div[id^=bsa-zone_1732708815075-2_123456]{min-height:250px;min-width:300px}}@media only screen and (min-width:880px) and (min-height:0px){div[id^=bsa-zone_1732708815075-2_123456]{min-height:600px;min-width:120px}}pre{overflow-x:auto}.code-highlight{float:left;min-width:100%}.code-line{border-left:4px solid transparent;display:block;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.code-line.inserted{background-color:rgba(16,185,129,.2)}.code-line.deleted{background-color:rgba(239,68,68,.2)}.highlight-line{background-color:rgba(55,65,81,.5);border-left:4px solid #3b82f6;margin-left:-16px;margin-right:-16px}.line-number:before{color:#9ca3af;content:attr(line);display:inline-block;margin-left:-8px;margin-right:16px;text-align:right;width:1rem}:root{--hcb--fz:var(--hcb--fz--base,14px);--hcb--ff:"Menlo","Consolas","Hiragino Kaku Gothic ProN","Hiragino Sans","Meiryo",sans-serif;--hcb--pY:1.75rem;--hcb--pX:1rem;--hcb--radius:3px;--hcb--linenumW:3.5ch;--hcb--data-label:attr(data-lang);--hcb--btn-offset:20px;--hcb--tsh:unset;--hcb--file-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' enable-background='new 0 0 50 56' viewBox='0 0 50 56'%3E%3Cpath fill='%23fff' d='M46.6 12.5c-1.2-1.6-2.8-3.5-4.5-5.4-1.8-1.8-3.6-3.5-5.2-4.7C34 .3 32.4 0 31.5 0H6.3C3.4 0 1 2.4 1 5.4v45.1c0 3 2.4 5.4 5.3 5.4h37.4c2.9 0 5.3-2.4 5.3-5.4V18c0-.9-.2-2.5-2.4-5.5zm-13.5 6.7h10.1l-.1 30.9L6.8 50V5.9h23.5v10.4c-.1 1.6 1.2 2.9 2.8 2.9zm2.9-5.8v-4c.6.6 1.3 1.2 2 1.9s1.3 1.4 1.9 2.1H36z'/%3E%3C/svg%3E");--hcb--c:#f9f9f6;--hcb--bgc:#2d2e29;--hcb--data-label--c:#fff;--hcb--data-label--bgc:#20211f;--hcb--line-numbers--c:#a3a3a3;--hcb--highlight-color:#fffaf51a;--hcb--scbar-track--bgc:#ffffff1a;--hcb--scbar-thumb--bgc:#fff3}.hcb_wrap.hcb_wrap{display:block;font-size:var(--hcb--fz,14px);margin-bottom:2em;margin-top:2em;padding:0;position:relative;z-index:0}pre{-webkit-overflow-scrolling:touch;border-radius:var(--hcb--radius,0);box-sizing:border-box;display:block;font-family:var(--hcb--ff);font-size:inherit;letter-spacing:.1px;line-height:1.5;margin:0;overflow:auto;padding:var(--hcb--pY) var(--hcb--pX);position:static}pre,pre>code{word-wrap:normal;background:var(--hcb--bgc);border:none;color:var(--hcb--c);-webkit-hyphens:none;hyphens:none;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:var(--hcb--tsh);white-space:pre;word-break:normal;word-spacing:normal}.hcb_wrap.hcb_wrap :is(code,span){box-sizing:border-box;font-family:inherit;font-size:inherit;line-height:inherit}pre.line-numbers{counter-reset:linenumber;position:static}pre.line-numbers>code{position:relative;white-space:inherit}pre.line-numbers-rows{border-right:1px solid var(--hcb--line-numbers--c);font-size:inherit;left:calc(-1px - var(--hcb--linenumW) - var(--hcb--pX)/2);min-width:var(--hcb--linenumW);pointer-events:none;position:absolute;top:-.125em;-webkit-user-select:none;-moz-user-select:none;user-select:none}pre.line-numbers-rows>span{counter-increment:linenumber;display:block;letter-spacing:-.25px;pointer-events:none;text-align:center}pre.line-numbers-rows>span:before{color:var(--hcb--line-numbers--c);content:counter(linenumber);display:block}pre::-webkit-scrollbar{height:6px}pre::-webkit-scrollbar-track{background:var(--hcb--scbar-track--bgc);border:none}pre::-webkit-scrollbar-thumb{background:var(--hcb--scbar-thumb--bgc);border-radius:3px}:not(pre)>code.prism{border-radius:.3em;padding:.1em;white-space:normal}pre:before{background-color:var(--hcb--data-label--bgc);border-radius:0 var(--hcb--radius);box-sizing:border-box;color:var(--hcb--data-label--c);content:var(--hcb--data-label);font-family:inherit;font-size:.925em;line-height:20px;min-width:4em;padding:0 10px;position:absolute;right:0;text-align:center;top:0;z-index:1}pre[data-show-lang="0"]{--hcb--data-label:none}pre[data-show-lang="1"]{--hcb--data-label:attr(data-lang)}pre[data-file]:before{background-image:var(--hcb--file-icon);background-position:center left 8px;background-repeat:no-repeat;background-size:auto 10px;content:attr(data-file);padding:0 8px 0 20px}.hcb_wrap{--hcb-clipbtn-opacity:0}.hcb-clipboard:focus-visible,.hcb_wrap:hover{--hcb-clipbtn-opacity:100}.hcb-clipboard{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#fafafacc;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' enable-background='new 0 0 48 48' viewBox='0 0 48 48'%3E%3Cpath d='m24 38 9-9h-5.5V19h-7v10H15z'/%3E%3Cpath d='M38 5.5h-9c0-2.8-2.2-5-5-5s-5 2.2-5 5h-9c-2.2 0-4 1.8-4 4v33c0 2.2 1.8 4 4 4h28c2.2 0 4-1.8 4-4v-33c0-2.2-1.8-4-4-4zm-14-2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm14 39H10v-33h5v3c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-3h5v33z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:75%;border:none;border-radius:3px;box-shadow:0 1px 2px #3d3d3d40;box-sizing:border-box;color:#000;height:2.25em;opacity:var(--hcb-clipbtn-opacity);padding:0;position:absolute;right:8px;text-align:center;top:calc(var(--hcb--btn-offset, 0px) + 8px);transition:opacity .25s;width:2.25em;z-index:2}[data-show-lang="0"]+.hcb-clipboard{--hcb--btn-offset:0px}[data-show-lang="1"]+.hcb-clipboard{--hcb--btn-offset:20px}.hcb-clipboard.-done{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' enable-background='new 0 0 48 48' viewBox='0 0 48 48'%3E%3Cpath d='M38 5.5h-9c0-2.8-2.2-5-5-5s-5 2.2-5 5h-9c-2.2 0-4 1.8-4 4v33c0 2.2 1.8 4 4 4h28c2.2 0 4-1.8 4-4v-33c0-2.2-1.8-4-4-4zm-14-2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm14 39H10v-33h5v3c0 .6.4 1 1 1h16c.6 0 1-.4 1-1v-3h5v33z'/%3E%3Cpath d='M32.6 19.3 22.1 30l-5.7-5.8-2.9 2.9 8.6 8.6 13.4-13.5z'/%3E%3C/svg%3E")}.hcb-clipboard.-done:before{background-color:inherit;border-radius:8px;color:inherit;content:"\2713 Copied";display:block;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1;padding:2px 4px 2px 2px;position:absolute;right:calc(4px + 100%);top:50%;translate:0 -50%}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#a8a897}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.important,.token.property,.token.symbol,.token.tag{color:#ff2c78}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.class-name,.token.inserted,.token.selector{color:#b4ec43}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function,.token.string{color:#f3e880}.token.function,.token.keyword.def{color:#5fe6ff}.token.keyword,.token.operator{color:#f92672}.token.keyword.this,.token.regex{color:#fd971f}.token.delimiter:not(.symbol){color:#5294ff}.token.bold{font-weight:700}.token.builtin,.token.italic,.token.keyword.def{font-style:italic}.token.entity{cursor:help}.language-css .token.property,.language-json .token.property,.language-scss .token.property{color:#5fe6ff}.language-php .token.important.delimiter{font-weight:400}.language-ruby .token.interpolation{color:#f8f8f2}.language-json .token.operator{color:#f3e880}@media screen and (max-width:599px){:root{--hcb--fz:var(--hcb--fz--mobile,13px)}}.sitepoint-new-marketing,.sitepoint-new-marketing p{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.sitepoint-new-marketing .container{margin-left:auto;margin-right:auto;max-width:1440px}.sitepoint-new-marketing .button{--tw-text-opacity:1;align-items:center;border-radius:56px;color:rgb(255 255 255/var(--tw-text-opacity));display:flex;font-size:.875rem;font-weight:600;height:56px;justify-content:center;line-height:1.25rem;padding:.5rem 1.5rem}.sitepoint-new-marketing .button:hover{--tw-bg-opacity:1;background-color:rgb(152 100 255/var(--tw-bg-opacity))}.sitepoint-new-marketing .labels{align-items:center;border-radius:9999px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:400;justify-content:center;line-height:1.25;padding:.5rem 10px;width:-moz-fit-content;width:fit-content}.sitepoint-new-marketing .small-text{font-size:.875rem;font-weight:400;line-height:1.25rem}.sitepoint-new-marketing .body-small-text{font-size:.75rem;font-weight:400;letter-spacing:-.16px;line-height:1rem}.sitepoint-new-marketing .caption-text{font-size:12px;font-weight:600;letter-spacing:.1px;line-height:1.25}.sitepoint-new-marketing .input{--tw-bg-opacity:1;align-items:center;align-self:stretch;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:7px;border-style:solid;border-width:1px;display:flex;margin-bottom:0;padding:10px .5rem;width:100%}.sitepoint-new-marketing .input:hover{--tw-border-opacity:1;border-color:rgb(175 174 178/var(--tw-border-opacity))}.sitepoint-new-marketing .input:focus-visible{outline-color:#7232fa;outline-style:solid;outline-width:1px}.sitepoint-new-marketing .input{border-color:#d5d5d5}.sitepoint-new-marketing .select-style{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTAgMTIuNTY4YS45NjQuOTY0IDAgMCAxLS43MDUtLjMwNmwtMy43Ny0zLjc3YS44OS44OSAwIDAgMS0uMjY1LS43MDUgMSAxIDAgMCAxIC4yODUtLjY4NC45MzIuOTMyIDAgMCAxIC43MDUtLjI5NS45Ny45NyAwIDAgMSAuNjg0LjI5NUwxMCAxMC4xOWwzLjA4Ny0zLjA4N2EuOTIuOTIgMCAwIDEgLjY3My0uMjg1Yy4yNiAwIC40OS4xMDIuNjk0LjMwNi4xOS4xOS4yODUuNDIxLjI4NS42OTRhLjk0NS45NDUgMCAwIDEtLjI4NS42OTRsLTMuNzUgMy43NWEuOTY0Ljk2NCAwIDAgMS0uNzA1LjMwNloiLz48L3N2Zz4=);background-position:calc(100% - 8px) calc(1em - 4px),calc(100% - 15px) calc(1em + 2px),calc(100% - .5em) .5em;background-repeat:no-repeat;background-size:20px,20px;box-sizing:border-box;margin:0}html:has(body.scroll-smooth){scroll-behavior:smooth}@font-face{font-display:swap;font-family:Inter Display;font-style:normal;font-weight:700;src:url(/fonts/InterDisplay-Bold-Latin.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter Display;font-style:normal;font-weight:600;src:url(/fonts/InterDisplay-SemiBold-Latin.woff2) format("woff2")}@media (min-width:768px){.md\:aspect-h-9{--tw-aspect-h:9}.md\:aspect-w-\[20\]{--tw-aspect-w:20;padding-bottom:calc(var(--tw-aspect-h)/var(--tw-aspect-w)*100%);position:relative}.md\:aspect-w-\[20\]>*{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}}.placeholder\:text-3::-moz-placeholder{font-size:16px;letter-spacing:-.1px;line-height:24px}.placeholder\:text-3::placeholder{font-size:16px;letter-spacing:-.1px;line-height:24px}.placeholder\:text-4::-moz-placeholder{font-size:18px;letter-spacing:-.2px;line-height:28px}.placeholder\:text-4::placeholder{font-size:18px;letter-spacing:-.2px;line-height:28px}.placeholder\:text-jar-3::-moz-placeholder{font-size:14px;letter-spacing:0;line-height:20px}.placeholder\:text-jar-3::placeholder{font-size:14px;letter-spacing:0;line-height:20px}.placeholder\:text-jar-4::-moz-placeholder{font-size:16px;letter-spacing:0;line-height:24px}.placeholder\:text-jar-4::placeholder{font-size:16px;letter-spacing:0;line-height:24px}.placeholder\:font-normal::-moz-placeholder{font-weight:400}.placeholder\:font-normal::placeholder{font-weight:400}.after\:mx-1:after{content:var(--tw-content);margin-left:.25rem;margin-right:.25rem}.after\:inline-block:after{content:var(--tw-content);display:inline-block}.after\:content-\[\'\/\'\]:after{--tw-content:"/";content:var(--tw-content)}.last\:after\:content-none:last-child:after{--tw-content:none;content:var(--tw-content)}.only\:block:only-child{display:block}.first-of-type\:mr-0:first-of-type{margin-right:0}.last-of-type\:border-b-transparent:last-of-type{border-bottom-color:transparent}.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-danger-alpha-11:hover{border-color:#bb0007d5}.hover\:border-neutral-alpha-11:hover{border-color:#0002119d}.hover\:border-neutral-alpha-12:hover{border-color:#000509e3}.hover\:border-neutral-alpha-2:hover{border-color:#05055806}.hover\:border-primary-9:hover{--tw-border-opacity:1;border-color:rgb(105 62 221/var(--tw-border-opacity))}.hover\:border-primary-alpha-11:hover{border-color:#2b019dcc}.hover\:border-primary-alpha-12:hover{border-color:#11013cf0}.hover\:border-primary-alpha-2:hover{border-color:#3414ff08}.hover\:border-transparent:hover{border-color:transparent}.hover\:\!bg-neutral-alpha-3:hover{background-color:#00003b0d!important}.hover\:\!bg-neutral-alpha-4:hover{background-color:#02023414!important}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:bg-danger-12:hover{--tw-bg-opacity:1;background-color:rgb(100 23 35/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(224 223 225/var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(127 125 131/var(--tw-bg-opacity))}.hover\:bg-gray-500:hover{--tw-bg-opacity:1;background-color:rgb(78 77 81/var(--tw-bg-opacity))}.hover\:bg-neutral-11:hover{--tw-bg-opacity:1;background-color:rgb(96 100 108/var(--tw-bg-opacity))}.hover\:bg-neutral-12:hover{--tw-bg-opacity:1;background-color:rgb(31 35 39/var(--tw-bg-opacity))}.hover\:bg-neutral-3:hover{--tw-bg-opacity:1;background-color:rgb(242 242 245/var(--tw-bg-opacity))}.hover\:bg-neutral-alpha-3:hover{background-color:#00003b0d}.hover\:bg-neutral-alpha-4:hover{background-color:#02023414}.hover\:bg-panel-1:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-panel-3:hover{--tw-bg-opacity:1;background-color:rgb(249 249 251/var(--tw-bg-opacity))}.hover\:bg-primary-10:hover{--tw-bg-opacity:1;background-color:rgb(97 58 204/var(--tw-bg-opacity))}.hover\:bg-primary-12:hover{--tw-bg-opacity:1;background-color:rgb(30 16 70/var(--tw-bg-opacity))}.hover\:bg-primary-400:hover{--tw-bg-opacity:1;background-color:rgb(166 121 255/var(--tw-bg-opacity))}.hover\:bg-primary-500:hover{--tw-bg-opacity:1;background-color:rgb(152 100 255/var(--tw-bg-opacity))}.hover\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgb(138 79 255/var(--tw-bg-opacity))}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(114 50 250/var(--tw-bg-opacity))}.hover\:bg-primary-alpha-2:hover{background-color:#3414ff08}.hover\:bg-primary-alpha-3:hover{background-color:#3705ff0f}.hover\:bg-primary-alpha-4:hover{background-color:#3505f51a}.hover\:\!text-neutral-12:hover{--tw-text-opacity:1!important;color:rgb(31 35 39/var(--tw-text-opacity))!important}.hover\:text-danger-alpha-12:hover{color:#55000de8}.hover\:text-link-hover:hover{--tw-text-opacity:1;color:rgb(62 201 203/var(--tw-text-opacity))}.hover\:text-neutral-12:hover{--tw-text-opacity:1;color:rgb(31 35 39/var(--tw-text-opacity))}.hover\:text-neutral-alpha-11:hover{color:#0002119d}.hover\:text-neutral-alpha-12:hover{color:#000509e3}.hover\:text-primary-12:hover{--tw-text-opacity:1;color:rgb(30 16 70/var(--tw-text-opacity))}.hover\:text-primary-200:hover{--tw-text-opacity:1;color:rgb(220 202 255/var(--tw-text-opacity))}.hover\:text-primary-300:hover{--tw-text-opacity:1;color:rgb(201 173 255/var(--tw-text-opacity))}.hover\:text-primary-alpha-11:hover{color:#2b019dcc}.hover\:text-primary-alpha-12:hover{color:#11013cf0}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-\[0\.82\]:hover{opacity:.82}.hover\:shadow-1:hover{--tw-shadow:0px 2px 3px -2px rgba(0,0,61,.05),0px 3px 12px -4px rgba(0,0,0,.05),0px 4px 16px -8px rgba(0,0,0,.08);--tw-shadow-colored:0px 2px 3px -2px var(--tw-shadow-color),0px 3px 12px -4px var(--tw-shadow-color),0px 4px 16px -8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:border-danger-alpha-9:focus{border-color:#db0007b7}.focus\:border-neutral-alpha-12:focus{border-color:#000509e3}.focus\:border-primary-400:focus{--tw-border-opacity:1;border-color:rgb(166 121 255/var(--tw-border-opacity))}.focus\:border-primary-alpha-9:focus{border-color:#3801d0c2}.focus\:bg-panel-1:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.focus\:text-gray-200:focus{--tw-text-opacity:1;color:rgb(224 223 225/var(--tw-text-opacity))}.focus\:text-primary-300:focus{--tw-text-opacity:1;color:rgb(201 173 255/var(--tw-text-opacity))}.focus\:shadow-\[0px_0px_0px_2px_\#ff00001a\]:focus{--tw-shadow:0px 0px 0px 2px #ff00001a;--tw-shadow-colored:0px 0px 0px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:shadow-\[0px_0px_0px_2px_rgba\(2\2c 2\2c 52\2c 0\.08\)\]:focus{--tw-shadow:0px 0px 0px 2px rgba(2,2,52,.08);--tw-shadow-colored:0px 0px 0px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:outline-1:focus{outline-width:1px}.focus\:outline-neutral-alpha-6:focus{outline-color:#01012e22}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:bg-neutral-11:focus-visible{--tw-bg-opacity:1;background-color:rgb(96 100 108/var(--tw-bg-opacity))}.focus-visible\:bg-neutral-alpha-3:focus-visible{background-color:#00003b0d}.focus-visible\:bg-neutral-alpha-4:focus-visible{background-color:#02023414}.focus-visible\:bg-primary-10:focus-visible{--tw-bg-opacity:1;background-color:rgb(97 58 204/var(--tw-bg-opacity))}.focus-visible\:bg-primary-500:focus-visible{--tw-bg-opacity:1;background-color:rgb(152 100 255/var(--tw-bg-opacity))}.focus-visible\:bg-primary-alpha-3:focus-visible{background-color:#3705ff0f}.focus-visible\:bg-primary-alpha-4:focus-visible{background-color:#3505f51a}.focus-visible\:text-neutral-alpha-11:focus-visible{color:#0002119d}.focus-visible\:text-neutral-alpha-12:focus-visible{color:#000509e3}.focus-visible\:text-primary-alpha-11:focus-visible{color:#2b019dcc}.focus-visible\:text-primary-alpha-12:focus-visible{color:#11013cf0}.focus-visible\:text-white:focus-visible{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus-visible\:opacity-80:focus-visible{opacity:.8}.active\:bg-neutral-alpha-3:active{background-color:#00003b0d}.active\:opacity-80:active{opacity:.8}.active\:shadow-1:active{--tw-shadow:0px 2px 3px -2px rgba(0,0,61,.05),0px 3px 12px -4px rgba(0,0,0,.05),0px 4px 16px -8px rgba(0,0,0,.08);--tw-shadow-colored:0px 2px 3px -2px var(--tw-shadow-color),0px 3px 12px -4px var(--tw-shadow-color),0px 4px 16px -8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-neutral-alpha-3:disabled{border-color:#00003b0d}.disabled\:bg-neutral-alpha-3:disabled{background-color:#00003b0d}.disabled\:bg-panel-3:disabled{--tw-bg-opacity:1;background-color:rgb(249 249 251/var(--tw-bg-opacity))}.disabled\:text-neutral-alpha-8:disabled{color:#00082f46}.group:hover .group-hover\:inline-block{display:inline-block}.group:hover .group-hover\:bg-primary-9{--tw-bg-opacity:1;background-color:rgb(105 62 221/var(--tw-bg-opacity))}.group:hover .group-hover\:text-neutral-11{--tw-text-opacity:1;color:rgb(96 100 108/var(--tw-text-opacity))}.group:hover .group-hover\:text-neutral-12{--tw-text-opacity:1;color:rgb(31 35 39/var(--tw-text-opacity))}.group:hover .group-hover\:text-neutral-alpha-11{color:#0002119d}.group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group[aria-selected=true] .group-aria-selected\:bg-neutral-3{--tw-bg-opacity:1;background-color:rgb(242 242 245/var(--tw-bg-opacity))}@media not all and (min-width:640px){.max-sm\:mb-8{margin-bottom:2rem}.max-sm\:w-full{width:100%}}@media (min-width:640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:mb-10{margin-bottom:2.5rem}.sm\:mb-20{margin-bottom:5rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-\[156px\]{margin-bottom:156px}.sm\:mb-\[600px\]{margin-bottom:600px}.sm\:ml-0{margin-left:0}.sm\:mr-2{margin-right:.5rem}.sm\:mr-4{margin-right:1rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-\[550px\]{height:550px}.sm\:h-auto{height:auto}.sm\:min-h-16{min-height:4rem}.sm\:w-1\/2{width:50%}.sm\:w-\[292px\]{width:292px}.sm\:w-\[318px\]{width:318px}.sm\:w-\[532px\]{width:532px}.sm\:w-auto{width:auto}.sm\:w-fit{width:-moz-fit-content;width:fit-content}.sm\:w-full{width:100%}.sm\:max-w-\[650px\]{max-width:650px}.sm\:max-w-full{max-width:100%}.sm\:flex-1{flex:1 1 0%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:content-start{align-content:flex-start}.sm\:justify-start{justify-content:flex-start}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:gap-\[58px\]{gap:58px}.sm\:gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.sm\:gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.sm\:gap-y-10{row-gap:2.5rem}.sm\:gap-y-6{row-gap:1.5rem}.sm\:space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(0px*(1 - var(--tw-space-x-reverse)));margin-right:calc(0px*var(--tw-space-x-reverse))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:border-r{border-right-width:1px}.sm\:border-b-transparent{border-bottom-color:transparent}.sm\:p-6{padding:1.5rem}.sm\:p-\[6px\]{padding:6px}.sm\:py-20{padding-bottom:5rem;padding-top:5rem}.sm\:pb-10{padding-bottom:2.5rem}.sm\:pb-20{padding-bottom:5rem}.sm\:pb-\[164px\]{padding-bottom:164px}.sm\:pb-\[80px\]{padding-bottom:80px}.sm\:pr-4{padding-right:1rem}.sm\:pt-10{padding-top:2.5rem}.sm\:pt-20{padding-top:5rem}.sm\:pt-24{padding-top:6rem}.sm\:pt-6{padding-top:1.5rem}.sm\:pt-\[168px\]{padding-top:168px}.sm\:text-center{text-align:center}.sm\:text-7{font-size:36px;letter-spacing:-.32px;line-height:42px}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-7-regular{font-weight:400}.sm\:text-7-bold,.sm\:text-7-regular{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:36px;font-style:normal;letter-spacing:-.32px;line-height:42px}.sm\:text-7-bold{font-weight:700}.sm\:text-11-bold{font-family:Inter Variable,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:64px;font-style:normal;font-weight:700;letter-spacing:-1.2px;line-height:64px}}@media (min-width:768px){.md\:my-8{margin-bottom:2rem;margin-top:2rem}.md\:-mt-24{margin-top:-6rem}.md\:mb-0{margin-bottom:0}.md\:mb-16{margin-bottom:4rem}.md\:mb-\[152px\]{margin-bottom:152px}.md\:mb-\[220px\]{margin-bottom:220px}.md\:flex{display:flex}.md\:h-\[118px\]{height:118px}.md\:w-1\/2{width:50%}.md\:w-\[150px\]{width:150px}.md\:w-\[194px\]{width:194px}.md\:w-\[210px\]{width:210px}.md\:w-\[259px\]{width:259px}.md\:w-\[347px\]{width:347px}.md\:w-\[348px\]{width:348px}.md\:w-\[535px\]{width:535px}.md\:flex-1{flex:1 1 0%}.md\:flex-none{flex:none}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-6{gap:1.5rem}.md\:space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.5rem*var(--tw-space-x-reverse))}.md\:rounded-2xl{border-radius:1rem}.md\:border-r{border-right-width:1px}.md\:border-b-gray-200{--tw-border-opacity:1;border-bottom-color:rgb(224 223 225/var(--tw-border-opacity))}.md\:border-r-transparent{border-right-color:transparent}.md\:px-0{padding-left:0;padding-right:0}.md\:px-\[clamp\(20px\2c 12vw\2c 122px\)\]{padding-left:clamp(20px,12vw,122px);padding-right:clamp(20px,12vw,122px)}.md\:pb-36{padding-bottom:9rem}.md\:pb-\[165px\]{padding-bottom:165px}.md\:pl-8{padding-left:2rem}.md\:pt-\[650px\]{padding-top:650px}.md\:text-center{text-align:center}.md\:text-7{font-size:36px;letter-spacing:-.32px;line-height:42px}.md\:text-8{font-size:40px;letter-spacing:-.42px;line-height:48px}.md\:text-lg\/tight{font-size:1.125rem;line-height:1.25}}@media (min-width:1024px){.lg\:sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.lg\:visible{visibility:visible}.lg\:static{position:static}.lg\:absolute{position:absolute}.lg\:relative{position:relative}.lg\:bottom-0{bottom:0}.lg\:left-0{left:0}.lg\:right-2{right:.5rem}.lg\:right-2\.5{right:.625rem}.lg\:top-full{top:100%}.lg\:z-10{z-index:10}.lg\:order-none{order:0}.lg\:float-right{float:right}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mb-0{margin-bottom:0}.lg\:mb-10{margin-bottom:2.5rem}.lg\:mb-14{margin-bottom:3.5rem}.lg\:mb-32{margin-bottom:8rem}.lg\:mb-\[275px\]{margin-bottom:275px}.lg\:ml-2{margin-left:.5rem}.lg\:mt-2{margin-top:.5rem}.lg\:mt-20{margin-top:5rem}.lg\:\!block{display:block!important}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-1\/2{height:50%}.lg\:h-auto{height:auto}.lg\:h-full{height:100%}.lg\:max-h-24{max-height:6rem}.lg\:max-h-\[calc\(100vh_-_var\(--navbar\)_-_1rem\)\]{max-height:calc(100vh - var(--navbar) - 1rem)}.lg\:min-h-\[1000px\]{min-height:1000px}.lg\:w-1\/3{width:33.333333%}.lg\:w-\[305px\]{width:305px}.lg\:w-\[440px\]{width:440px}.lg\:w-\[488px\]{width:488px}.lg\:w-\[532px\]{width:532px}.lg\:w-\[552px\]{width:552px}.lg\:w-auto{width:auto}.lg\:w-fit{width:-moz-fit-content;width:fit-content}.lg\:w-full{width:100%}.lg\:min-w-full{min-width:100%}.lg\:max-w-\[472px\]{max-width:472px}.lg\:max-w-lg{max-width:32rem}.lg\:flex-auto{flex:1 1 auto}.lg\:basis-\[588px\]{flex-basis:588px}.lg\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:transform-none{transform:none}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:self-center{align-self:center}.lg\:overflow-auto{overflow:auto}.lg\:overflow-visible{overflow:visible}.lg\:rounded-2xl{border-radius:1rem}.lg\:border-t{border-top-width:1px}.lg\:bg-spBlack{--tw-bg-opacity:1;background-color:rgb(35 35 35/var(--tw-bg-opacity))}.lg\:bg-transparent{background-color:transparent}.lg\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.lg\:p-0{padding:0}.lg\:px-0{padding-left:0;padding-right:0}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:px-gs-1{padding-left:var(--gridspace);padding-right:var(--gridspace)}.lg\:py-1{padding-bottom:.25rem;padding-top:.25rem}.lg\:py-16{padding-bottom:4rem;padding-top:4rem}.lg\:py-20{padding-bottom:5rem;padding-top:5rem}.lg\:py-3{padding-bottom:.75rem;padding-top:.75rem}.lg\:py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.lg\:py-32{padding-bottom:8rem;padding-top:8rem}.lg\:py-7{padding-bottom:1.75rem;padding-top:1.75rem}.lg\:pb-16{padding-bottom:4rem}.lg\:pb-32{padding-bottom:8rem}.lg\:pl-8{padding-left:2rem}.lg\:pr-9{padding-right:2.25rem}.lg\:pt-0{padding-top:0}.lg\:pt-16{padding-top:4rem}.lg\:pt-20{padding-top:5rem}.lg\:pt-\[184px\]{padding-top:184px}.lg\:text-left{text-align:left}.lg\:text-5{font-size:24px;letter-spacing:-.28px;line-height:36px}.lg\:text-base{font-size:1rem;line-height:1.5rem}.lg\:text-primary-900{--tw-text-opacity:1;color:rgb(23 10 51/var(--tw-text-opacity))}.lg\:opacity-100{opacity:1}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lg\:ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lg\:ring-gray-900\/5{--tw-ring-color:hsla(0,0%,9%,.05)}.lg\:container-post-sidebar{flex-basis:var(--post-sidebar);width:var(--post-sidebar)}.lg\:container-post-content{flex-basis:calc(100% - var(--post-sidebar));width:calc(100% - var(--post-sidebar))}.hover\:lg\:bg-spBlack:hover{--tw-bg-opacity:1;background-color:rgb(35 35 35/var(--tw-bg-opacity))}}@media (min-width:1248px){.xl\:sticky{position:sticky}.xl\:left-auto{left:auto}.xl\:right-auto{right:auto}.xl\:top-16{top:4rem}.xl\:z-0{z-index:0}.xl\:mb-0{margin-bottom:0}.xl\:mb-4{margin-bottom:1rem}.xl\:ml-0{margin-left:0}.xl\:ml-\[20px\]{margin-left:20px}.xl\:mr-\[calc\(100\%_-_400px\)\]{margin-right:calc(100% - 400px)}.xl\:mt-0{margin-top:0}.xl\:block{display:block}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:max-h-screen-navbar-offset{max-height:calc(100vh - var(--navbar))}.xl\:w-1\/4{width:25%}.xl\:w-\[300px\]{width:300px}.xl\:w-\[680px\]{width:680px}.xl\:flex-row{flex-direction:row}.xl\:rounded-none{border-radius:0}.xl\:bg-panel-1{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.xl\:bg-transparent{background-color:transparent}.xl\:p-0{padding:0}.xl\:px-0{padding-left:0;padding-right:0}.xl\:px-8{padding-left:2rem;padding-right:2rem}.xl\:pr-4{padding-right:1rem}.xl\:sticky-dock{position:sticky;top:var(--navbar)}.xl\:container-post-toc{flex-basis:calc(100% - var(--post-body));width:calc(100% - var(--post-body))}.xl\:container-post-body{flex-basis:var(--post-body);width:var(--post-body)}}@media (min-width:1440px){.\32xl\:mx-1{margin-left:.25rem;margin-right:.25rem}.\32xl\:block{display:block}}.\[\&\:\:-webkit-search-cancel-button\]\:hidden::-webkit-search-cancel-button{display:none}@media (min-width:1024px){.lg\:\[\&\:nth-child\(n\+3\)\]\:-mt-2:nth-child(n+3){margin-top:-.5rem}}.header-module--nav--ec8cc{height:calc(var(--baseline)*1.6)}@media (min-width:1024px){.header-module--nav--ec8cc{height:var(--navbar-height)}}.header-module--logo--07b7e{height:calc(var(--baseline)*.8)}@media (min-width:1024px){.header-module--logo--07b7e{height:var(--baseline)}}.header-module--navbarItems--065d7{top:calc(var(--baseline)*1.6)}@media (min-width:1024px){.header-module--navbarItems--065d7{top:var(--navbar-height)}}.header-module--submenu--4180b{border-bottom-left-radius:8px;border-bottom-right-radius:8px;box-shadow:0 4px 4px rgba(0,0,0,.25);min-width:11rem}.header-module--submenu--4180b a:after{bottom:.2rem;content:""}.header-module--navLink--a00a5:after{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));background:hsla(0,0%,100%,0);bottom:.25rem;content:"";height:2px;opacity:0;position:absolute;right:0;transition:opacity .1s ease-out;width:0}.header-module--toggler--2389f span{height:.17rem;transform:translateY(0);transform-origin:center;transition:.45s cubic-bezier(.45,.45,.37,1.36);transition-property:background-color,transform;width:1.9rem}.header-module--toggler--2389f span:after,.header-module--toggler--2389f span:before{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:inherit;content:"";display:inherit;height:inherit;left:0;position:absolute;top:0;transform-origin:center;transition:transform .45s cubic-bezier(.45,.45,.37,1.36);width:inherit}.header-module--toggler--2389f span:before{transform:translateY(-.45rem)}.header-module--toggler--2389f span:after{transform:translateY(.45rem)}@media (min-width:640px){.header-module--toggler--2389f span:before{transform:translateY(-.5rem)}.header-module--toggler--2389f span:after{transform:translateY(.5rem)}}.header-module--toggler--2389f[aria-expanded=true] span{transform:translate(1rem)}.header-module--toggler--2389f[aria-expanded=true] span:before{transform:translate(-1rem) rotate(135deg)}.header-module--toggler--2389f[aria-expanded=true] span:after{transform:translate(-1rem) rotate(-135deg)}@media (min-width:1024px){.header-module--navbarItems--065d7{transition-property:none}.header-module--navbarItems--065d7 li:nth-child(odd){background-color:transparent}.header-module--navLink--a00a5{--tw-text-opacity:1;color:rgb(224 223 225/var(--tw-text-opacity))}}.searchBox-module--searchHits--c141f ul{margin-bottom:0}.advertise-module--advertise--95c4d{font-size:16px}.advertise-module--audienceContainer--da872{background:linear-gradient(180deg,rgba(114,50,250,0),rgba(114,50,250,.06) 50%,hsla(0,0%,100%,.12))}@media (min-width:768px){.advertise-module--contact--91b92{box-shadow:0 2.201359510421753px 5.538156986236572px 0 transparent,0 5.118332862854004px 12.876648902893066px 0 transparent,0 9.191340446472168px 23.123476028442383px 0 transparent,0 15.254220962524414px 38.376407623291016px 0 rgba(0,0,0,.01),0 25.130813598632812px 63.223838806152344px 0 rgba(0,0,0,.03),0 43.92137908935547px 110.49694061279297px 0 rgba(0,0,0,.07),0 95px 239px 0 rgba(0,0,0,.16)}}.s65o7al{border:1px solid transparent;border-radius:2px;cursor:pointer;display:inline-block;font-weight:700;padding:.25rem .5rem;text-align:center;-webkit-text-decoration:none;text-decoration:none;transition:.3s ease;transition-property:border-color,background-color,color}.s65o7al[data-type=outline]{background-color:#fff;border-radius:4px}.s65o7al:not([data-type=outline]){color:#fff}.s65o7al:not([data-type=outline])[data-color=primary]{background-color:#7232fa;border-color:#7232fa}.s65o7al:not([data-type=outline])[data-color=primary]:active,.s65o7al:not([data-type=outline])[data-color=primary]:hover{background-color:#9864ff;color:#fff}.s65o7al:not([data-type=outline])[data-color=pink]{background-color:#fa0b7e;border-color:#fa0b7e}.s65o7al:not([data-type=outline])[data-color=pink]:active,.s65o7al:not([data-type=outline])[data-color=pink]:hover{background-color:#fa3292;color:#fff}.s65o7al:not([data-type=outline])[data-color=darkGrey]{background-color:#333;border-color:#333}.s65o7al:not([data-type=outline])[data-color=darkGrey]:active,.s65o7al:not([data-type=outline])[data-color=darkGrey]:hover{background-color:#232023;color:#fff}.s65o7al[disabled],.s65o7al[disabled]:hover{background-color:#efefef;border-color:#efefef;color:#a2a2a2;cursor:default}.s65o7al[data-size=small]{font-size:11px;height:1.77778rem;line-height:1.18519rem}.s65o7al[data-size=medium]{font-size:15px;height:1.77778rem;line-height:1.18519rem}.s1aa88yd{font-size:1rem;font-weight:var(--s1aa88yd-0);line-height:1.77778rem;margin-bottom:1.77778rem;margin-top:0}.s1aa88yd[data-size=small]{font-size:.75614rem;line-height:1.01587rem;margin-bottom:.88889rem;margin-top:0;padding:0}.s1aa88yd[data-size=large]{font-size:1.15rem;line-height:1.33333rem;margin-bottom:2.37037rem;margin-top:0;padding:0}@media (min-width:936px){.s1aa88yd[data-size=large]{font-size:1.25rem;line-height:1.77778rem;margin-bottom:1.77778rem}}.si97ov1{background:#535beb;background-image:radial-gradient(circle at 29% 55%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 4%,transparent 0,transparent 44%,transparent 0,transparent 100%),radial-gradient(circle at 85% 89%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 51%,transparent 0,transparent 52%,transparent 0,transparent 100%),radial-gradient(circle at 6% 90%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 53%,transparent 0,transparent 64%,transparent 0,transparent 100%),radial-gradient(circle at 35% 75%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 6%,transparent 0,transparent 98%,transparent 0,transparent 100%),radial-gradient(circle at 56% 75%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 16%,transparent 0,transparent 23%,transparent 0,transparent 100%),radial-gradient(circle at 42% 0,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 3%,transparent 0,transparent 26%,transparent 0,transparent 100%),radial-gradient(circle at 29% 28%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 51%,transparent 0,transparent 75%,transparent 0,transparent 100%),radial-gradient(circle at 77% 21%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 35%,transparent 0,transparent 55%,transparent 0,transparent 100%),radial-gradient(circle at 65% 91%,hsla(0,0%,99%,.05) 0,hsla(0,0%,99%,.05) 46%,transparent 0,transparent 76%,transparent 0,transparent 100%),linear-gradient(45deg,#535beb,#4c0bae);background-position:top;background-repeat:no-repeat;padding-top:1.77778rem}.wny53kd{align-items:center;display:flex;flex-direction:row;justify-content:center;margin:0 auto;max-width:1248px;padding:0 2rem}.wny53kd .laptop{display:none;-o-object-fit:cover;object-fit:cover;-o-object-position:100% 0;object-position:100% 0}.wny53kd h1,.wny53kd p{margin-top:0;text-shadow:0 0 5px rgba(0,0,0,.5),0 0 10px rgba(0,0,0,.5)}@media (min-width:936px){.wny53kd{padding:0 1rem}.wny53kd h1,.wny53kd p{margin-left:1rem}.wny53kd .left-col{flex-basis:38%;max-width:38%}.wny53kd .right-col{flex-basis:62%;max-width:62%}.wny53kd .laptop{display:block;margin:.88889rem 0 1.77778rem 1.77778rem}}.h7mz791{color:#fff;font-size:2.25rem;line-height:3rem;margin-top:3.55556rem;text-align:center}@media (min-width:624px){.h7mz791{text-align:left}}.s1xj59yp{color:#fff;font-size:1rem;font-weight:400;max-width:680px;text-align:center}@media (min-width:624px){.s1xj59yp{font-size:1.25rem;max-width:100%;text-align:left}}.cmmeiii{box-shadow:0 3px 5px rgba(0,0,0,.2);display:block;margin:2rem auto 3rem;width:275px}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{box-sizing:content-box;overflow:visible}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.07143em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{top:.25em;width:var(--fa-li-width,2em)}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom left}.fa-layers-top-right{right:var(--fa-right,0);top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);line-height:inherit;position:absolute;text-align:center;width:var(--fa-li-width,2em)}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-beat;animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-bounce;animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-fade;animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-beat-fade;animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-flip;animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-shake;animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-spin;animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-name:fa-spin;animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}24%,8%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}.s1tg6c5w{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:1.5rem 1rem 0;position:relative;text-align:center}@media (min-width:624px){.s1tg6c5w{padding:2rem 0 0}}@media (min-width:936px){.s1tg6c5w{padding:3rem 0 0}}.s11mk4vi{border:1px solid #ccc;border-radius:36px;box-shadow:inset 2px 3px 6px rgba(0,0,0,.1);color:#000;display:flex;width:calc(100% - 30px)}@media (min-width:624px){.s11mk4vi{width:calc(100% - 60px)}}@media (min-width:936px){.s11mk4vi{width:826px}}@media (min-width:1248px){.s11mk4vi{width:1108px}}.s1bqk6ig.s1bqk6ig.s1bqk6ig{background:transparent;border:none;height:2.66667rem;margin:0 0 0 15px;outline:none;padding:1rem;width:100%}@media (min-width:624px){.s1bqk6ig.s1bqk6ig.s1bqk6ig{margin:0 0 0 20px}}@media (min-width:936px){.s1bqk6ig.s1bqk6ig.s1bqk6ig{margin:0 0 0 35px}}.s1bqk6ig.s1bqk6ig.s1bqk6ig::-moz-placeholder{color:#898787;font-size:1.3225rem}.s1bqk6ig.s1bqk6ig.s1bqk6ig::placeholder{color:#898787;font-size:1.3225rem}.sc801iq{background:linear-gradient(180deg,#f9fafc 18.36%,#eff3f6 72.54%);border:0;border-left:1px solid #ccc;border-radius:0 50px 50px 0;box-sizing:border-box;color:#4f4f4f;padding:0;width:80px}.sc801iq i{color:#898787}.sc801iq:hover{cursor:pointer}.sc801iq:hover i{color:#333}.spcxsjo{display:flex;margin:0 auto 1.5rem;width:100%}@media (min-width:624px){.spcxsjo{margin:0 auto 1.5rem}}@media (min-width:936px){.spcxsjo{margin:0 auto 2rem;max-width:936px}}@media (min-width:1248px){.spcxsjo{max-width:1248px}}.c17krh2w{align-items:center;color:#bbb;display:flex;margin:0 .5rem}@media (min-width:624px){.c17krh2w{font-size:1.8rem;margin:0 1rem}}.c17krh2w:hover{color:#a0a0a0}.c1s9omxe{color:#bbb;cursor:pointer;font-size:1.2rem}@media (min-width:624px){.c1s9omxe{font-size:1.8rem}}.c1s9omxe:hover{color:#a0a0a0}.c1rlo65d{overflow:hidden}.c1rlo65d.left-shadow{box-shadow:inset 9px 0 10px -12px rgba(0,0,0,.7)}.c1rlo65d.right-shadow{box-shadow:inset -9px 0 10px -12px rgba(0,0,0,.7)}.c1rlo65d.left-right-shadow{box-shadow:inset 9px 0 10px -12px rgba(0,0,0,.7),inset -9px 0 10px -12px rgba(0,0,0,.7)}.c1ut87k4{display:flex;flex:none;transition:all 1.5s ease 0s}.b1io5ar7{display:inline-block;margin:.25rem 0;min-width:8rem;padding:0 .8rem}@media (min-width:624px){.b1io5ar7{margin:1rem 0;min-width:11.6rem;padding:0 1rem}}.bccuu3 .gatsby-image-wrapper{display:block;max-height:8rem;min-height:8rem;width:100%}.bccuu3 .gatsby-image-wrapper img{height:100%;position:absolute;width:100%}@media (min-width:624px){.bccuu3 .gatsby-image-wrapper{max-height:12rem;min-height:12rem}}.s4zmyo9{padding:2.5rem 1rem;position:relative}@media (min-width:624px){.s4zmyo9{padding:3.5rem 0}}@media (min-width:936px){.s4zmyo9{padding:4rem 0}}.hpuu1tj{align-items:center;display:flex;flex-direction:column;justify-content:center}.hpuu1tj h2{font-size:1rem;font-weight:500;line-height:1.25rem;margin:0 0 40px;text-align:center}@media (min-width:624px){.hpuu1tj h2{font-size:1.25rem;line-height:1.5rem;margin:0 0 30px}}@media (min-width:936px){.hpuu1tj h2{font-size:1.5rem;line-height:1.5rem}}.c1hr6q9g.c1hr6q9g.c1hr6q9g{border:0;border-radius:4px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#eee;height:2.66667rem;line-height:2.66667rem;margin:0 0 1.77778rem;padding:0 2rem;transition:.3s}.sc6c8ht{background-color:#2a2a2a;color:#aaa;padding:2.66667rem 0}.wif8zcs{margin:0 auto;max-width:1248px;padding:0 1rem}.h1r1loop{color:#ccc;font-size:1.25rem;font-weight:400;margin:0 0 1.77778rem;padding:0;text-align:center}.l60zia7{display:flex;flex-flow:row wrap}.l60zia7 .logoContainer{flex-basis:var(--l60zia7-0);max-width:var(--l60zia7-0);text-align:center}.l60zia7 .logoContainer p{margin-bottom:0}.l60zia7 .logoContainer a{color:#aaa;min-height:1.77778rem}.l60zia7 .logoContainer a:hover{color:#fff}.l60zia7 .logoContainer>div img{margin:0 auto;width:var(--l60zia7-1)}@media (min-width:936px){.l60zia7 .logoContainer{flex-basis:25%;max-width:25%}}.l60zia7 img{height:2.66667rem;margin:0 auto}.l60zia7 p{font-size:.64rem}@media (min-width:936px){.l60zia7{flex-wrap:nowrap}}.su4olrg{background-color:#fff;color:#222;padding:2.66667rem 0;text-align:center}.w1an1svt{margin:0 auto;max-width:1248px;padding:0 1rem}.hj4srrs{color:#333;margin-bottom:.88889rem;margin-top:0;text-align:center}.wzzogk4{color:#222;display:flex;flex-direction:column;text-align:center}.wzzogk4 .whyContainer{flex-basis:100%;max-width:100%;padding:0 1rem;text-align:center}@media (min-width:936px){.wzzogk4 .whyContainer{flex-basis:33%;max-width:33%}}.wzzogk4 img{margin:auto;max-width:70%}.wzzogk4 p{font-size:.64rem;line-height:.88889rem}@media (min-width:936px){.wzzogk4{flex-direction:row}}.s2mwcf5{background-color:#fff;color:#aaa;padding:2.66667rem 0}.w1jigb82{margin:0 auto;max-width:1248px;padding:0 1rem}.b1hv0kfn{border:2px solid transparent;-o-border-image:linear-gradient(90deg,#1e3591,#fdbb2d,#b21f1f);border-image:linear-gradient(90deg,#1e3591,#fdbb2d,#b21f1f);border-image-slice:1;border-radius:6px;box-shadow:2px 2px 4px rgba(0,0,0,.2);box-sizing:border-box;color:#222;display:flex;flex-flow:row wrap;justify-content:center;margin:0 auto!important;margin:0 -.5rem;max-width:62rem;padding-bottom:1.77778rem;width:96%}.b1hv0kfn>div{flex-basis:50%;max-width:50%;padding:0}@media (min-width:624px){.b1hv0kfn>div{padding:0 1rem}}.b1hv0kfn h2{margin:1.77778rem 0 .88889rem}.b1hv0kfn .introduction{flex-basis:83%;max-width:83%}@media (min-width:936px){.b1hv0kfn .introduction{flex-basis:55%;max-width:55%}}.b1hv0kfn .reasons{margin:1.77778rem 0 .88889rem}.b1hv0kfn .reasons li{list-style-position:inside;list-style-type:disc}.b1hv0kfn .price-unit{flex-basis:83%;margin:0 0 .88889rem;max-width:83%}@media (min-width:936px){.b1hv0kfn .price-unit{flex-basis:41%;margin-top:3.55556rem;max-width:41%}}.b1hv0kfn .price-unit label{color:#aaa;line-height:3.55556rem;margin-bottom:0;transition:all .3s ease-out}.b1hv0kfn .price-unit .price-content{box-sizing:border-box;display:flex;flex-flow:row wrap;justify-content:center;margin:0 -.5rem}.b1hv0kfn .price-unit .price-content .main-price{flex-basis:42%;font-size:.8rem;max-width:42%}@media (min-width:624px){.b1hv0kfn .price-unit .price-content .main-price{font-size:1rem}}.b1hv0kfn .monthly-account .main-price .price-annual{opacity:0;transform:perspective(600px) rotateY(-1turn)}.b1hv0kfn .monthly-account .main-price .price-monthly{opacity:1;transform:perspective(600px) rotate3d(0,0,0,-1turn)}.b1hv0kfn .main-price{align-items:center;display:flex;justify-content:center;padding:0}.b1hv0kfn .main-price .price-frame{bottom:1.77778rem;display:flex;font-size:3.05176rem;line-height:3.55556rem;-ms-perspective:600px;perspective:600px;-ms-perspective-origin:50%;perspective-origin:50%;position:relative;transform-style:preserve-3d;width:1.25em}@media (min-width:936px){.b1hv0kfn .main-price .price-frame{font-size:3.05176rem}}.b1hv0kfn .main-price .price-annual,.b1hv0kfn .main-price .price-monthly{font-weight:700;margin:0;padding:0 .5rem 0 0;position:absolute;transition:all .6s cubic-bezier(.32,.01,.48,1.44)}.b1hv0kfn .main-price .price-monthly{opacity:1;transform:perspective(600px) rotate3d(0,0,0,1turn)}.b1hv0kfn .main-price .price-monthly:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xml:space='preserve' viewBox='0 0 455 455'%3E%3Cg fill='orange'%3E%3Cpolygon points='227.5 150 133.7 200 45.5 150 84.3 330 370.7 330 409.5 150 321.2 200'/%3E%3Crect width='280' height='55' x='87.5' y='360'/%3E%3Ccircle cx='40' cy='80' r='40'/%3E%3Ccircle cx='415' cy='80' r='40'/%3E%3Ccircle cx='227.5' cy='80' r='40'/%3E%3C/g%3E%3C/svg%3E");background-size:100%;content:"";display:block;height:1rem;left:30%;position:absolute;top:-.5rem;width:1rem}.b1hv0kfn .main-price .price-monthly:after{content:"*";font-size:.3em;vertical-align:super}.b1hv0kfn .main-price .price-monthly{opacity:0;transform:perspective(600px) rotateY(1turn)}.s7wgugc{align-items:center;display:flex;flex-basis:58%;justify-content:center;max-width:58%;position:relative}.s7wgugc input{height:1rem;margin:0;width:1rem}.s7wgugc input:checked+label{color:#333}.s7wgugc label{color:#aaa;font-weight:300;line-height:3.55556rem;padding:0 .3rem;transition:all .3s ease-out}.s7wgugc .fnote{bottom:-.71111rem;font-size:.64rem;position:absolute;transition:color .6s}.s7wgugc input#radios1:checked~.monthly-note,.s7wgugc input#radios2:checked~.annual-note{color:transparent}.s7wgugc .bonus{color:#7232fa;font-weight:700}.c8x5bmy.c8x5bmy.c8x5bmy{border:0;border-radius:4px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#eee;cursor:pointer;margin:1.77778rem 0;padding-left:1rem;padding-right:1rem;width:100%}.s1mpuo8t{background-color:#fff;color:#222;padding:2.66667rem 0;text-align:center}.wzdp7w{margin:0 auto;max-width:1248px;padding:0 1rem}.wzdp7w .tweet-container{box-sizing:border-box;display:flex;flex-flow:row wrap;margin:0 -.5rem}.wzdp7w .tweet-container>div{flex-basis:100%;max-width:100%;padding:0 1rem}@media (min-width:936px){.wzdp7w .tweet-container>div{flex-basis:33%;max-width:33%}}.h18jy8q{color:#333;margin-bottom:.88889rem;text-align:center}@media (min-width:936px){.h18jy8q{margin-bottom:1.77778rem}}.t13rfmgn{border:2px solid #2aa2ef;line-height:.88889rem;margin-bottom:.88889rem;padding:.88889rem 1rem;text-align:left}.t13rfmgn .tweet-title{font-size:.8rem;font-weight:500}.t13rfmgn .tweet-title a,.t13rfmgn .tweet-title p{color:#20272f;font-weight:500;-webkit-text-decoration:none;text-decoration:none}.t13rfmgn .tweet-title p{font-size:.8rem;line-height:.8rem;margin:0}.t13rfmgn .avatar{border-radius:50%;float:left;height:1.77778rem;margin-right:1rem;width:1.77778rem}.t13rfmgn .twittername{color:#aaa;display:block;font-size:.64rem;font-weight:300}.t13rfmgn .tweet-body p{font-size:.64rem;line-height:.88889rem;margin:.88889rem 0}.suhqeno{background-color:#105273;background-image:var(--suhqeno-0);background-position:50%;background-repeat:no-repeat;background-size:cover}@media (min-width:624px){.suhqeno{background-size:100%}}.wcqh0z5{background:rgba(0,0,0,.4);display:flex;justify-content:space-between;margin:0 auto 20px;max-width:1248px;padding:20px 30px}@media (min-width:936px){.wcqh0z5{margin:0 auto 30px}}.im6tdkb{margin:0;position:relative}@media (min-width:936px){.im6tdkb{margin:0 30px 0 0}}@media (min-width:1248px){.im6tdkb{margin:0 70px 0 0}}.m6bjvs0{background:rgba(0,0,0,.4);display:flex;flex-direction:column;margin:0 0 16px;padding:15px 20px}@media (min-width:624px){.m6bjvs0{padding:5px 40px}}@media (min-width:936px){.m6bjvs0{line-height:72px;margin:0 0 30px}}.m6bjvs0>div{display:flex;flex-direction:column}@media (min-width:624px){.m6bjvs0>div{flex-direction:row;justify-content:space-between}}.td3jbbo{color:#fff;display:inline-block;font-size:1rem;line-height:1.5rem;margin:0 0 10px;padding:0;text-shadow:1px 2px 4px rgba(0,0,0,.4)}@media (min-width:624px){.td3jbbo{font-size:1.5rem;line-height:60px;margin:0}}@media (min-width:936px){.td3jbbo{line-height:72px}}.cxli7a9{line-height:1.5rem}@media (min-width:624px){.cxli7a9{line-height:60px}}@media (min-width:936px){.cxli7a9{line-height:72px}}.c14zotb4{color:#fff;margin:0 .875rem 0 0;outline:none;padding:0}.c14zotb4>*,.c14zotb4>:after,.c14zotb4>:before{pointer-events:none}.c14zotb4:last-child{margin:0}.c14zotb4 svg.share-icon{transition:width .2s linear;width:1rem}.c14zotb4:focus,.c14zotb4:hover{color:#fff}.c14zotb4:focus svg.share-icon,.c14zotb4:hover svg.share-icon{transition:width .2s linear;width:1.25rem}@media (min-width:1248px){.c14zotb4{margin:0 1rem 0 0}}.m1odfayv{bottom:0}.m1odfayv,.m1odfayv>div{display:flex;flex-direction:column}.m1odfayv>div{margin:0 0 16px}@media (min-width:624px){.m1odfayv>div{align-items:center;flex-direction:row}}@media (min-width:936px){.m1odfayv>div{margin:0 0 30px}}.m1odfayv>div:not(:first-child){flex-direction:row}.ajqjnq{border-radius:50%;height:100px;margin:0 auto 20px;min-width:100px;width:100px}@media (min-width:624px){.ajqjnq{margin:0 25px}}@media (min-width:936px){.ajqjnq{margin:0 40px}}@media (min-width:1248px){.ajqjnq{margin:0 60px}}.d17w3rty{color:#fff;font-size:.75rem;font-weight:500;margin:0}.d17w3rty a{color:#c9adff}.d17w3rty a:hover{color:#9864ff}@media (min-width:624px){.d17w3rty{font-size:.875rem;margin:0 20px 0 0}}@media (min-width:936px){.d17w3rty{font-size:.875rem}}@media (min-width:1248px){.d17w3rty{margin:0 40px 0 0}}.m12xxw3g{display:none;font-size:.75rem}@media (min-width:624px){.m12xxw3g{display:flex}}.m13hvvvv{font-size:.75rem;margin-bottom:0}.cs9srjd,.m13hvvvv,.m13hvvvv>a{color:#a2a2a2}.cs9srjd{font-weight:900;margin-right:.75rem;padding-left:12px;position:relative;text-transform:uppercase}.cs9srjd:before{background-color:#a2a2a2;background-color:var(--cs9srjd-0);border-radius:100%;content:"";height:8px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:8px}.e11jemzk{display:none;font-size:.875rem;line-height:1.6;margin-bottom:0}@media (min-width:624px){.e11jemzk{display:block}}.stub9nm{align-items:flex-start;display:flex;margin-bottom:3rem}.cjt0qrr{color:#3a3a3a;width:calc(100% - 150px)}@media (min-width:624px){.cjt0qrr{width:calc(100% - 210px)}}.c877jhp{background-color:#fff;box-shadow:0 6px 12px 0 rgba(0,0,0,.25);margin-bottom:.5rem;margin-top:.5rem;transition:all .2s ease 0s;width:100%}@media (min-width:624px){.c877jhp{width:calc(50% - 1rem)}}@media (min-width:936px){.c877jhp{width:calc(25% - .5rem)}}.c877jhp:hover{transform:translateY(-4px)}.c877jhp>a{height:157px;-webkit-text-decoration:none;text-decoration:none;width:100%}.c179m2mi,.c877jhp>a{display:flex;flex-direction:column}.c179m2mi{height:calc(100% - 157px);justify-content:space-between;padding:1rem}.c7l2g36{background-color:#efefef;background-position:top;background-repeat:no-repeat;background-size:cover;height:157px;overflow:hidden;position:relative}.c71u16a{color:#a2a2a2;padding-left:12px;position:relative}.c71u16a:before{background-color:#a2a2a2;border-radius:100%;content:"";height:8px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:8px}.c1fd0pty{color:#a2a2a2;font-size:.75rem;font-weight:400;line-height:1.2}.c11x20zd.cs9srjd{display:block;line-height:2}.sk03qz0{display:block}@media (min-width:624px){.sk03qz0{display:flex;flex-wrap:wrap;justify-content:space-between}}.s12r9smb{background-color:#fff;color:#222;margin:0 auto 3.55556rem;max-width:1248px;padding:0 2rem}.s12r9smb p{margin-top:1rem;text-align:center}.hiz3ohb{color:#333;margin-bottom:.88889rem;text-align:center}@media (min-width:936px){.hiz3ohb{margin-bottom:1.77778rem}}.crmbg31{border:0;border-radius:4px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#eee;height:2.66667rem;line-height:2.66667rem;margin:0 0 1.77778rem;padding:0 2rem;position:relative;transition:.3s}@media (min-width:936px){.crmbg31{margin:0 auto}}.s1o4idzq{background:#020024;background-image:var(--s1o4idzq-0);background-size:cover,cover;color:#ccc;padding:0}.wrk4ta2{display:flex;flex-direction:column;margin:0 auto;max-width:1248px;padding:0 1rem;width:90%}@media (min-width:936px){.wrk4ta2{flex-direction:row}}.wrk4ta2 div{padding:0 1rem}.wrk4ta2 .hero-introduction{flex-basis:100%;max-width:100%;order:var(--wrk4ta2-0)}@media (min-width:936px){.wrk4ta2 .hero-introduction{flex-basis:58%;max-width:58%}}.wrk4ta2 .hero-introduction h2,.wrk4ta2 .hero-introduction p{color:#eee;margin-bottom:1.77778rem}.wrk4ta2 .hero-introduction h2{margin-top:5.33333rem}.wrk4ta2 .hero-introduction p.button{text-align:center}.wrk4ta2 .hero-featured-videos{flex-basis:100%;max-width:100%;order:var(--wrk4ta2-0)}@media (min-width:936px){.wrk4ta2 .hero-featured-videos{flex-basis:33%;max-width:33%;order:var(--wrk4ta2-1)}}.wrk4ta2 .hero-featured-videos .stack{background:rgba(0,0,0,.5);color:#fff;padding:.88889rem 1.5rem}.wrk4ta2 .hero-featured-videos .stack figure{margin:1em 0}.wrk4ta2 .hero-featured-videos .stack figure .image-container{overflow:hidden;padding:0;position:relative}.wrk4ta2 .hero-featured-videos .stack figure .image-container img{width:100%}.wrk4ta2 .hero-featured-videos .stack figure .image-container span.duration{background:#000;bottom:1.2em;color:#fff;display:block;line-height:.8rem;opacity:1;padding:.2rem .5rem;position:absolute;right:.7em}.wrk4ta2 .hero-featured-videos .stack figure figcaption{color:#fff;font-size:.8rem;font-weight:500;line-height:.88889rem;margin:.5rem 0 0}.wrk4ta2 .hero-featured-videos .stack figure figcaption span{display:block;font-size:.64rem;font-weight:300}.wrk4ta2 .hero-featured-videos .stack figure figcaption div{padding:0}.wrk4ta2 .hero-featured-videos .stack figure figcaption:hover{color:#24b3b5}.wrk4ta2 .hidden-div{display:none;order:2}@media (min-width:936px){.wrk4ta2 .hidden-div{display:block;flex-basis:9%;max-width:9%}}.c1bwrg7x.c1bwrg7x.c1bwrg7x{border:0;border-radius:4px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#eee;height:2.66667rem;line-height:2.66667rem;margin:0 0 1.77778rem;padding:0 2rem;position:relative;transition:.3s}.sprezz4{margin:0 auto;max-width:1248px;padding:20px 30px;width:100%}.styles-module--bookGlow--786d1{background:hsla(0,0%,100%,.13);filter:blur(.6228812336921692px)}.styles-module--premiumCTA--4810e{background:linear-gradient(155deg,#28282e,#18181a);box-shadow:0 0 0 1px #000}.styles-module--leftNav--176c4 a[aria-current=page]{--tw-text-opacity:1;background-color:#3705ff0f;color:rgb(86 53 178/var(--tw-text-opacity));font-weight:600}.styles-module--article--4c075{font-size:16px;letter-spacing:0;line-height:24px}.styles-module--article--4c075 h1{font-size:32px;font-weight:600;letter-spacing:0;line-height:40px;margin-bottom:1rem;margin-top:1rem}.styles-module--article--4c075 h2{font-size:24px;font-weight:600;letter-spacing:-.1px;line-height:36px;margin-bottom:1rem;margin-top:2rem}.styles-module--article--4c075 h2 b,.styles-module--article--4c075 h2 strong{font-weight:inherit}.styles-module--article--4c075>p:first-child{font-size:14px;font-weight:500;letter-spacing:0;line-height:20px;margin-bottom:0;margin-top:2rem}.styles-module--article--4c075 p{font-size:16px;font-weight:400;letter-spacing:0;line-height:24px;margin-bottom:1rem;margin-top:1rem}.styles-module--article--4c075 h3{font-size:24px;font-weight:600;letter-spacing:-.1px;line-height:36px;margin-bottom:1rem;margin-top:-1rem;padding-top:4rem}.styles-module--article--4c075 h3 b,.styles-module--article--4c075 h3 strong{font-weight:inherit}.styles-module--article--4c075 ul{display:flex;flex-direction:column;row-gap:1rem}.styles-module--article--4c075 pre,.styles-module--article--4c075 ul{margin-bottom:1rem;margin-top:1rem}.styles-module--article--4c075 code:not(pre code){--tw-text-opacity:1;color:rgb(198 42 47/var(--tw-text-opacity))}.styles-module--article--4c075 table{border-collapse:collapse;border-color:#02023414;border-width:1px;table-layout:auto}.styles-module--article--4c075 table td,.styles-module--article--4c075 table th{border-color:#02023414;border-width:1px;padding:.75rem}.styles-module--article--4c075 a{opacity:.8;text-decoration-line:underline;text-underline-offset:4px}.styles-module--article--4c075 a:hover{opacity:1}.styles-module--article--4c075 ul{list-style-type:disc;padding-left:1rem}.styles-module--article--4c075 ol{list-style-type:decimal;padding-left:1rem}.post-body>*{margin-bottom:1.5rem}.post-body h1,.post-body h2,.post-body h3,.post-body h4,.post-body h5,.post-body h6{font-weight:700;margin-bottom:1.5rem}.post-body h1{font-size:40px;letter-spacing:-.42px;line-height:48px;margin-top:4rem}.post-body h2{font-size:36px;letter-spacing:-.32px;line-height:42px;margin-top:4rem}.post-body h3{font-size:24px;letter-spacing:-.28px;line-height:36px;margin-top:3.5rem}.post-body h4{font-size:18px;letter-spacing:-.2px;line-height:28px;margin-top:3rem}.post-body h5{font-size:16px;letter-spacing:-.1px;line-height:24px;margin-top:2.5rem}.post-body h6{font-size:14px;letter-spacing:0;line-height:20px;margin-top:2rem}.post-body blockquote,.post-body figcaption,.post-body ol,.post-body p,.post-body pre,.post-body table,.post-body ul{font-size:16px;font-weight:400;letter-spacing:-.1px;line-height:24px;margin-bottom:1.5rem}.post-body blockquote{border-color:#3a07e43b;border-left-width:4px;padding-left:.75rem}.post-body ol li,.post-body ul li{list-style-position:outside;list-style-type:disc;margin-bottom:.5rem;margin-left:1.5rem}.post-body ul{list-style-type:disc}.post-body ol{list-style-type:decimal}.post-body pre{border-radius:1rem;margin-bottom:1.5rem;margin-top:1.5rem}.post-body :not(pre)>code,.post-body kbd,.post-body samp{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 242 245/var(--tw-bg-opacity));border-radius:2px;color:rgb(31 35 39/var(--tw-text-opacity));font-weight:500;padding:2px 4px}.post-body :not(pre)>code{overflow-wrap:break-word}.post-body img{border-radius:1rem}.post-body iframe{width:100%}.post-body>p:first-child{--tw-bg-opacity:1;background-color:rgb(243 240 255/var(--tw-bg-opacity));border-radius:1rem;font-weight:500;margin-bottom:4rem;padding:1.5rem}.post-body>p:first-child strong{font-weight:500}.post-body p:last-child{margin-bottom:0}.alignleft,.alignright{display:block;margin-left:1.25rem;margin-right:1.25rem}@media (min-width:1024px){.alignleft,.alignright{float:left}}.aligncenter{max-width:100%}@media (min-width:1024px){.aligncenter{margin:1.75rem auto}}.wp-caption{margin:1.75rem auto;width:100%}@media (min-width:1024px){.wp-caption{width:auto}}img.wp-image{display:block;margin-bottom:1.75rem;margin-left:auto;margin-right:auto}.wp-caption-text{--tw-text-opacity:1;color:rgb(96 100 108/var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem;text-align:center}@media (min-width:1024px){.wp-caption-text{text-align:left}}.wp-video{max-width:100%}.wp-special{line-height:1.5rem}[aria-label="Table of contents"]{display:none}.wp-block-yoast-faq-block>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.wp-block-yoast-faq-block h3{margin-bottom:.75rem;margin-top:0}.inline-content,.sidebar-content{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-bottom:2rem;margin-top:2.5rem;position:relative;width:100%}.inline-content:before,.sidebar-content:before{color:#0002119d;content:"Advertisement";display:block;font-size:10px;font-weight:400;letter-spacing:.2px;position:absolute;text-align:center;text-transform:uppercase;top:-1.5rem;width:100%}.inline-content iframe,.sidebar-content iframe{margin:0 auto}.inline-content{min-height:300px}.inline-content>a{display:block}.inline-content img{--tw-bg-opacity:1;background-color:rgb(252 252 253/var(--tw-bg-opacity))}.ad-free .inline-content,.ad-free .sidebar-content,.logged-in .inline-content a{display:none}@media only screen and (min-width:0px) and (min-height:0px){div[id^=bsa-zone_1719474980702-2_123456]{min-height:200px;min-width:200px}}@media only screen and (min-width:880px) and (min-height:0px){div[id^=bsa-zone_1719474980702-2_123456]{min-height:250px;min-width:300px}}@media only screen and (min-width:0px) and (min-height:0px){div[id^=bsa-zone_1719474689804-7_123456]{min-height:200px;min-width:200px}}@media only screen and (min-width:880px) and (min-height:0px){div[id^=bsa-zone_1719474689804-7_123456]{min-height:250px;min-width:300px}}@media only screen and (min-width:0px) and (min-height:0px){div[id^=bsa-zone_1719474948836-3_123456]{min-height:200px;min-width:200px}}@media only screen and (min-width:880px) and (min-height:0px){div[id^=bsa-zone_1719474948836-3_123456]{min-height:250px;min-width:300px}}.teams-module--hero--46799{background-image:linear-gradient(180deg,#000 20%,#e154fa 120%)}@media (min-width:768px){.teams-module--hero--46799{background-image:radial-gradient(farthest-corner at center 200%,#e154fa 25%,#000 70%)}}.header-module--toggler--f3855 span{height:1.5px;transform:translateY(0);transition:.45s cubic-bezier(.45,.45,.37,1.36);transition-property:background-color,transform}.header-module--toggler--f3855 span:after,.header-module--toggler--f3855 span:before{background-color:inherit;border-radius:inherit;content:"";display:inherit;height:inherit;left:0;position:absolute;top:0;transform-origin:center;transition:transform .45s cubic-bezier(.45,.45,.37,1.36);width:inherit}.header-module--toggler--f3855 span:before{transform:translateY(-.3rem)}.header-module--toggler--f3855 span:after{transform:translateY(.3rem)}.header-module--toggler--f3855[aria-expanded=true] span{background-color:transparent;transform:translate(1rem)}.header-module--toggler--f3855[aria-expanded=true] span:before{--tw-bg-opacity:1;background-color:rgb(31 35 39/var(--tw-bg-opacity));transform:translate(-1rem) rotate(135deg)}.header-module--toggler--f3855[aria-expanded=true] span:after{--tw-bg-opacity:1;background-color:rgb(31 35 39/var(--tw-bg-opacity));transform:translate(-1rem) rotate(-135deg)}</style><link data-react-helmet="true" rel="canonical" href="https://www.sitepoint.com/"/><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/favicons/48x48.png"/><link rel="apple-touch-icon" sizes="72x72" href="/favicons/72x72.png"/><link rel="apple-touch-icon" sizes="96x96" href="/favicons/96x96.png"/><link rel="apple-touch-icon" sizes="144x144" href="/favicons/144x144.png"/><link rel="apple-touch-icon" sizes="192x192" href="/favicons/192x192.png"/><link rel="apple-touch-icon" sizes="256x256" href="/favicons/256x256.png"/><link rel="apple-touch-icon" sizes="384x384" href="/favicons/384x384.png"/><link rel="apple-touch-icon" sizes="512x512" href="/favicons/512x512.png"/><link rel="preconnect" href="https://cdn.sanity.io"/><link rel="alternate" type="application/rss+xml" title="SitePoint" href="/sitepoint.rss"/><script> !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); posthog.init('phc_HS7HoEdTpP75Ip1VUJ6ie62QlbB8ciTuri8j0lbENPX', {"api_host":"https://eu.posthog.com"}) </script><script>//load TrackerJS !function(t,n,e,o,a){function d(t){var n=~~(Date.now()/3e5),o=document.createElement(e);o.async=!0,o.src=t+"?ts="+n;var a=document.getElementsByTagName(e)[0];a.parentNode.insertBefore(o,a)}t.MooTrackerObject=a,t[a]=t[a]||function(){return t[a].q?void t[a].q.push(arguments):void(t[a].q=[arguments])},window.attachEvent?window.attachEvent("onload",d.bind(this,o)):window.addEventListener("load",d.bind(this,o),!1)}(window,document,"script","//cdn.stat-track.com/statics/moosend-tracking.min.js","mootrack"); //tracker has to be initialized otherwise it will generate warnings and wont sendtracking events mootrack('init', 'ca794cde-3e17-4ecf-a1da-f2c52093ec73');</script><title data-gatsby-head="true">SitePoint – Learn HTML, CSS, JavaScript, PHP, Ruby & Responsive Design</title><link rel="dns-prefetch" id="s3-images-prefetch" href="https://s3.sitepoint.com" data-gatsby-head="true"/><link rel="dns-prefetch" id="uploads-prefetch" href="https://uploads.sitepoint.com" data-gatsby-head="true"/><link rel="dns-prefetch" id="learnable-images-prefetch" href="https://learnable-images.sitepoint.com" data-gatsby-head="true"/><link rel="dns-prefetch" id="consent-prefetch" href="https://cmp.inmobi.com" data-gatsby-head="true"/><link rel="dns-prefetch" id="gtm-prefetch" href="https://www.googletagmanager.com" data-gatsby-head="true"/><link rel="dns-prefetch" id="tapfiliate-prefetch" href="https://script.tapfiliate.com" data-gatsby-head="true"/><link rel="dns-prefetch" id="facebook-prefetch" href="https://connect.facebook.net" data-gatsby-head="true"/><link rel="dns-prefetch" id="ads-prefetch" href="https://cdn4.buysellads.net" data-gatsby-head="true"/><link id="favicon" href="/favicons/32x32.png" rel="icon" type="image/png" data-gatsby-head="true"/><link id="sitemap" rel="sitemap" type="application/xml" href="/sitemap-index.xml" data-gatsby-head="true"/><script type="application/ld+json" data-gatsby-head="true">{"@context":"https://schema.org","@type":"Organization","@id":"https://www.sitepoint.com/#Organization","name":"SitePoint","description":"Learn Web Design & Development with SitePoint tutorials, courses and books - HTML5, CSS3, JavaScript, PHP, mobile app development, Responsive Web Design","url":"https://www.sitepoint.com/","actionableFeedbackPolicy":"https://www.sitepoint.com/contact-us/","logo":"https://www.sitepoint.com/static-images/sitepoint-logo.png","contactPoint":{"@type":"ContactPoint","contactType":"Support","email":"support@sitepoint.com","availableLanguage":"English"},"sameAs":["https://www.facebook.com/sitepoint","https://twitter.com/sitepointdotcom"]}</script></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><!-- slice-start id="header-7d06c7f3c99ffa4b1914dd22bd0a187c-1" --><header class="mb-navbar"><nav aria-label="Main navigation" class="fixed top-0 left-0 w-full z-[10001] bg-white"><div class="flex items-center justify-between py-2 min-h-14 container"><a aria-current="page" class="mr-8" aria-label="SitePoint" href="/"><svg class="h-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 35" fill="none"><path fill="currentColor" d="M37.757 21.157c.235.394.56.72.945.948.41.242.855.412 1.318.502.499.103 1.006.155 1.515.153.42 0 .84-.03 1.258-.09a4.536 4.536 0 0 0 1.215-.334c.358-.154.673-.4.914-.718.25-.346.377-.772.36-1.206a1.785 1.785 0 0 0-.18-.87 1.683 1.683 0 0 0-.57-.657 6.354 6.354 0 0 0-1.876-.84 29.672 29.672 0 0 0-2.443-.578 12.491 12.491 0 0 1-2.422-.737 5.051 5.051 0 0 1-1.871-1.328 3.494 3.494 0 0 1-.747-2.38 3.837 3.837 0 0 1 .524-2.046 4.339 4.339 0 0 1 1.348-1.391 6.137 6.137 0 0 1 1.858-.795 8.403 8.403 0 0 1 2.053-.258 12.01 12.01 0 0 1 2.43.23c.694.136 1.36.405 1.961.796a4.082 4.082 0 0 1 1.365 1.526 5.88 5.88 0 0 1 .601 2.399h-2.545a2.668 2.668 0 0 0-.391-1.27 2.591 2.591 0 0 0-.859-.808c-.35-.21-.73-.363-1.124-.452a5.636 5.636 0 0 0-1.245-.135c-.387 0-.773.03-1.155.09a3.823 3.823 0 0 0-1.065.32 2.158 2.158 0 0 0-.781.61c-.21.284-.316.636-.3.994a1.5 1.5 0 0 0 .113.612c.08.193.2.365.35.504.352.322.758.572 1.198.736.522.208 1.059.37 1.605.488.601.133 1.2.27 1.8.411.597.142 1.223.315 1.875.52.574.185 1.12.457 1.619.808.462.329.85.76 1.137 1.265.305.578.454 1.232.43 1.892a4.457 4.457 0 0 1-.584 2.38 4.602 4.602 0 0 1-1.529 1.527c-.665.4-1.391.674-2.146.809a12.39 12.39 0 0 1-2.353.23 10.697 10.697 0 0 1-2.46-.275 5.977 5.977 0 0 1-2.069-.904 4.57 4.57 0 0 1-1.438-1.648 5.797 5.797 0 0 1-.601-2.489h2.567c.004.515.14 1.02.395 1.459ZM53.498 8.898h-2.55V24.68h2.55V8.898ZM64.077 8.898v2.29h-3.104v9.802c-.007.246.018.492.073.731a.751.751 0 0 0 .284.43c.176.114.376.182.583.198.324.034.65.05.975.045h1.167v2.29h-1.949a8.987 8.987 0 0 1-1.695-.135 2.467 2.467 0 0 1-1.138-.502 2.158 2.158 0 0 1-.644-1.038 6.093 6.093 0 0 1-.21-1.77v-10.05h-2.597V8.897h2.636v-4.73h2.515v4.73h3.104ZM77.868 23.673a6.942 6.942 0 0 1-4.374 1.355 7.825 7.825 0 0 1-3.225-.61 6.355 6.355 0 0 1-2.292-1.707 7.31 7.31 0 0 1-1.395-2.625 12.85 12.85 0 0 1-.524-3.328 9.648 9.648 0 0 1 .541-3.298c.34-.96.854-1.84 1.515-2.593a6.886 6.886 0 0 1 2.306-1.725 6.94 6.94 0 0 1 2.923-.61 6.268 6.268 0 0 1 3.435.872 6.867 6.867 0 0 1 2.19 2.213 8.838 8.838 0 0 1 1.137 2.932c.205.992.291 2.007.257 3.021h-11.59a6.358 6.358 0 0 0 .24 1.97c.17.608.462 1.17.858 1.649.423.495.945.885 1.529 1.142.693.302 1.439.448 2.189.43a4.345 4.345 0 0 0 2.653-.764 3.703 3.703 0 0 0 1.357-2.308h2.515c-.237 1.58-1.04 3.006-2.245 3.984Zm-.614-10.136a4.45 4.45 0 0 0-.927-1.418 4.308 4.308 0 0 0-3.13-1.3 4.376 4.376 0 0 0-1.781.351 4.118 4.118 0 0 0-1.365.962 4.62 4.62 0 0 0-.902 1.418 5.487 5.487 0 0 0-.39 1.726h8.903a5.406 5.406 0 0 0-.408-1.735v-.004ZM85.63 8.898v2.137h.06a3.844 3.844 0 0 1 1.979-1.906 7.262 7.262 0 0 1 2.966-.597 6.887 6.887 0 0 1 3.134.673 6.385 6.385 0 0 1 2.22 1.807c.6.784 1.053 1.68 1.335 2.643.296 1.024.44 2.09.43 3.161a11.32 11.32 0 0 1-.43 3.162 7.519 7.519 0 0 1-1.318 2.61 6.231 6.231 0 0 1-2.22 1.758 7.094 7.094 0 0 1-3.103.641 7.546 7.546 0 0 1-2.684-.52 5.348 5.348 0 0 1-1.266-.713 4.14 4.14 0 0 1-1.035-1.174h-.06v8.13h-2.554V8.898h2.546Zm9.157 5.601a5.874 5.874 0 0 0-.859-1.879 4.287 4.287 0 0 0-1.498-1.31 4.486 4.486 0 0 0-2.147-.488 4.316 4.316 0 0 0-2.19.52 4.423 4.423 0 0 0-1.467 1.355 5.754 5.754 0 0 0-.825 1.906 9.331 9.331 0 0 0-.253 2.168 9.227 9.227 0 0 0 .27 2.258c.166.689.458 1.336.86 1.907.4.56.919 1.014 1.515 1.328a4.662 4.662 0 0 0 2.25.501 4.295 4.295 0 0 0 2.201-.52 4.12 4.12 0 0 0 1.426-1.355 6.04 6.04 0 0 0 .781-1.95c.16-.742.242-1.5.24-2.26a8.23 8.23 0 0 0-.3-2.18h-.004ZM100.408 13.555c.3-.97.79-1.865 1.438-2.624a6.796 6.796 0 0 1 2.37-1.757 8.538 8.538 0 0 1 6.491 0 6.836 6.836 0 0 1 2.352 1.757 7.42 7.42 0 0 1 1.438 2.624c.325 1.05.486 2.148.477 3.252.01 1.1-.151 2.194-.477 3.239a7.438 7.438 0 0 1-1.438 2.61 6.657 6.657 0 0 1-2.352 1.74 8.741 8.741 0 0 1-6.491 0 6.629 6.629 0 0 1-2.37-1.74 7.434 7.434 0 0 1-1.438-2.61 10.562 10.562 0 0 1-.48-3.239 10.71 10.71 0 0 1 .48-3.252Zm2.576 5.8a5.335 5.335 0 0 0 1.034 1.86 4.49 4.49 0 0 0 3.42 1.544c.643 0 1.28-.134 1.874-.396a4.484 4.484 0 0 0 1.545-1.148 5.375 5.375 0 0 0 1.035-1.86 8.873 8.873 0 0 0 0-5.1 5.56 5.56 0 0 0-1.035-1.879 4.423 4.423 0 0 0-1.545-1.16 4.64 4.64 0 0 0-3.748 0 4.43 4.43 0 0 0-1.546 1.16 5.543 5.543 0 0 0-1.017 1.893c-.5 1.659-.5 3.44 0 5.1l-.017-.014ZM120.672 8.898h-2.55V24.68h2.55V8.898ZM127.031 8.898V11.4h.056c1.059-1.912 2.738-2.868 5.036-2.868.866-.025 1.73.12 2.545.43a4.01 4.01 0 0 1 1.629 1.166c.442.525.753 1.158.904 1.841a9.96 9.96 0 0 1 .254 2.336v10.388h-2.55V13.997a3.231 3.231 0 0 0-.197-1.256 3.099 3.099 0 0 0-.662-1.065 3.144 3.144 0 0 0-1.074-.67 3.033 3.033 0 0 0-1.236-.184 5.11 5.11 0 0 0-2.022.366 3.814 3.814 0 0 0-1.425 1.039 4.512 4.512 0 0 0-.859 1.572 6.521 6.521 0 0 0-.283 1.97v8.91h-2.55V8.899h2.434ZM147.924 8.898v2.29h-3.087v9.802c-.007.246.017.492.073.731a.755.755 0 0 0 .283.43c.177.114.377.182.584.198.324.034.649.05.975.045h1.167v2.29h-1.944a8.988 8.988 0 0 1-1.692-.135 2.468 2.468 0 0 1-1.137-.502 2.146 2.146 0 0 1-.644-1.038 6.073 6.073 0 0 1-.211-1.77v-10.05h-2.64V8.897h2.64v-4.73h2.55v4.73h3.083ZM.657 14.95l2.361 2.4 7.423 7.307 3.202-3.252a1.157 1.157 0 0 0-.06-1.4l-2.923-2.71-3.151-3.216a1.155 1.155 0 0 1-.269-.767 1.15 1.15 0 0 1 .299-.755l8.487-8.623L12.162 0 3.018 9.3.661 11.694c-.208.21-.375.463-.488.743a2.36 2.36 0 0 0-.003 1.77c.113.28.279.533.487.744Z"></path><path fill="currentColor" d="m25.962 19.12-2.335-2.399-7.444-7.299-3.203 3.252a1.156 1.156 0 0 0 .06 1.4l2.924 2.71L19.115 20c.18.211.276.485.27.768a1.146 1.146 0 0 1-.3.755l-8.492 8.613 3.864 3.934 9.153-9.3 2.357-2.394c.208-.21.373-.464.486-.744a2.36 2.36 0 0 0-.002-1.77 2.263 2.263 0 0 0-.489-.742ZM52.22 7.19c.82 0 1.485-.677 1.485-1.512 0-.836-.665-1.514-1.485-1.514-.82 0-1.486.678-1.486 1.514 0 .835.665 1.513 1.486 1.513ZM119.396 7.19c.821 0 1.486-.677 1.486-1.512 0-.836-.665-1.514-1.486-1.514-.82 0-1.485.678-1.485 1.514 0 .835.665 1.513 1.485 1.513Z"></path></svg></a><div class="ml-0 mr-auto hidden lg:flex"><a href="/premium/library/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3">Premium</a><a href="/community/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3">Forum</a><a href="/jobs-for-developers/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3">Developer Jobs</a><div><div class="relative" data-headlessui-state=""><div><div tabindex="0" class="cursor-pointer inline-flex items-center justify-center border whitespace-nowrap text-2 font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent hover:bg-neutral-alpha-3 text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3" aria-expanded="false" data-headlessui-state=""><span>Tutorials<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" class="svg-inline--fa fa-chevron-down fa-xs ml-3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg></span></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div></div><a href="/premium/pricing/?ref_source=sitepoint&ref_medium=topnav" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3">Pricing</a><div><div class="relative" data-headlessui-state=""><div><div tabindex="0" class="cursor-pointer inline-flex items-center justify-center border whitespace-nowrap text-2 font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent hover:bg-neutral-alpha-3 text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3" aria-expanded="false" data-headlessui-state=""><a class="" tabindex="-1" href="/blog/">Blog<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-down" class="svg-inline--fa fa-chevron-down fa-xs ml-3" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"></path></svg></a></div></div></div><div style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></div></div></div><div class="flex-1 hidden"><button class="items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 hidden ml-4 lg:inline-flex">Cancel</button></div><div class="hidden items-center space-x-1 lg:flex"><button class="items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 hidden lg:inline-flex"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="magnifying-glass" class="svg-inline--fa fa-magnifying-glass mr-2.5" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"></path></svg>Search</button><a href="/premium/sign-in/" class="inline-flex items-center justify-center whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border bg-transparent disabled:border-neutral-alpha-3 text-neutral-12 px-4 py-2.5 rounded-md text-2 border-neutral-alpha-6 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3">Login</a><a href="/premium/pricing/?ref_source=sitepoint&ref_medium=topnav" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent px-4 py-2.5 rounded-md text-2 bg-primary-9 text-white hover:bg-primary-10 focus-visible:bg-primary-10" id="mobile-join-premium">Start Free Trial</a></div></div><div id="mobile-nav" class="bg-white flex flex-col h-navbar-offset hidden"><div class="flex flex-col flex-1 h-full overflow-hidden"><div class="flex flex-col h-full p-3 overflow-y-auto"><a href="/premium/library/" class="inline-flex items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 justify-normal">Premium</a><a href="/community/" class="inline-flex items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 justify-normal">Forum</a><a href="/jobs-for-developers/" class="inline-flex items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 justify-normal">Developer Jobs</a><button class="items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 flex justify-between space-x-1.5">Tutorials<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-right" class="svg-inline--fa fa-chevron-right fa-sm px-2 py-1" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"></path></svg></button><a href="/premium/pricing/?ref_source=sitepoint&ref_medium=topnav" class="inline-flex items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 justify-normal">Pricing</a><button class="items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 flex justify-between space-x-1.5">Blog<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-right" class="svg-inline--fa fa-chevron-right fa-sm px-2 py-1" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"></path></svg></button><a href="/premium/sign-in/" class="inline-flex items-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-4 py-2.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3 justify-normal">Login</a></div></div><div class="container py-6 mt-auto mb-0"><a href="/premium/pricing/?ref_source=sitepoint&ref_medium=topnav" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent px-4 py-2.5 rounded-md text-2 bg-primary-9 text-white hover:bg-primary-10 focus-visible:bg-primary-10 w-full" id="mobile-join-premium">Start Free Trial</a></div></div></nav></header><!-- slice-end id="header-7d06c7f3c99ffa4b1914dd22bd0a187c-1" --><main><div class="px-5 pt-8 pb-14 sm:pt-24 sm:pb-[164px] isolate relative"><div class="absolute inset-0 overflow-hidden -z-10 bg-[#fcfcfd]"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" viewBox="0 0 1440 900"><path fill="url(#pattern0)" d="M0 0H1440V900H0z" opacity="0.36" style="mix-blend-mode:exclusion"></path><defs><pattern id="pattern0" width="0.429" height="0.687" patternContentUnits="objectBoundingBox"><use transform="scale(.00044 .0007)" xlink:href="#image0_1288_13896"></use></pattern><image id="image0_1288_13896" width="972" height="972" data-name="216.png" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8wAAAPMCAYAAACXKDBuAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAACLVSURBVHgB7dtBUhzJlqjh4xhD2AAruvHM0C7EHPbBCmAT9TSIHql3I+Zint4eyuxLFWZxpNuRkR4k32fmFpGz3yhxsoKTGQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMB/osRCwzDc1hoPpZTXiPo0juO36EiPHj169Gyvp7VMFz169HyCnkOTHj16VmD+nL7nIhba7eKuPXdft6ibKSw606NHjx492+tpLeVdz310pEfPmfeYP3r0nGmPeXj6nstYqJS4erufnuL70pPTk9OT05PTM6/sP8+kZ4aenJ7c1nr2DXoyenJ65pk/uTV6jrBhLo+11pe27v618o7O9OjRo0fP9npaS33X8xwd6dFz5j3mjx49Z9pjHn6sHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B9KAAAAwJn417+G0rS7WsdxjCUuY6FhGG5rjYcW9NqCnlrQt+hIjx49evRsr6e1TBc9evR8gp5Dkx49etZpmS568p4vree+XVtPPLWzqOciFtrt4q4tqq9b1M30g4rO9OjRo0fP9npaS3nXcx8d6dFz5j3mjx49Z9pjHv5Rz9dj9izeMLdN99Xb/fRXhb705PTk9OT05PTMK/svAOmZoSenJ7e1nn2DnoyenJ555k9ujZ4jbJjLY631pa3ff63gozM9evTo0bO9ntZS3/U8R0d69Jx5j/mjR8+Z9piHf9zzo7X83MK/HwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4N9KAAAAwBkYhiFqjdK0V7WO4xhLXMZCLei2BT20oNcW9NSCvkVHevTo0aNnez3Tm1ejR4+eT9BzaNKjR886LdNFT97zpZ37dlpPPLWzqOciFtrt4q4tqq/bD+lm+kFFZ3r06NGjZ3s9raW867mPjvToOfMe80ePnjPtMQ//qOfrMXsWb5jbpvvq7X76q0JfenJ6cnpyenJ65pX9F4D0zNCT05PbWs++QU9GT07PPPMnt0bPETbM5bHW+tLW779W8NGZHj169OjZXk9rqe96nqMjPXrOvMf80aPnTHvMwz/u+dFafm7h3w8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBvJQAAAOD/YBiGqDVK017VOo5j9HTsnstYqAXdtqCHFvTagp5a0LfoSI8ePXr0bK9nevNq9OjR8wl6Dk169OhZp2W6bK3nSzv37bSeeGrnrHouYqHdLu7aovq6/Ue7mf7DRWd69OjRo2d7Pa2lvOu5j4706DnzHvNHj54z7dno/Pl6zj2LN8xt0331dj/9laMvPTk9OT05PTk988r+C0B6ZujJ6cltrWffoCejJ6dnnvmTW6PnCBvm8lhrfYmovz4SEJ3p0aNHj57t9bSW+q7nOTrSo+fMe8wfPXrOtGfD8+dHa/m5oZ/PJnoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgd0osNAzDba3xUEp5jahP4zh+i4706NGjR8/2elrLdNGjR88n6Dk06dGjZ52W6aLnhD0XsdBuF3ftufu6Rd1MYdGZHj169OjZXk9rKe967qMjPXr0rN5kHurRs06L+XPinstYqJS4erufnuL70pPTk9OT05PTM6/sP8+kZ4aenJ7c1nr2DXoyenJ65pk/uTV6jrBhLo+11pe27v618o7O9OjRo0fP9npaS33X8xwd6dGjZ/Um81CPnnVazJ8P1AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/U2KhYRhua42HUsprRH0ax/FbdKRHjx49erbX01qmix49ej5Bz6FJjx4967RMFz0n7LmIhXa7uGvP3dct6mYKi8706NGjR8/2elpLeddzHx3p0aNn9SbzUI+edVrMnxP3XMZCpcTV2/30FN+XnpyenJ6cnpyeeWX/eSY9M/Tk9OS21rNv0JPRk9Mzz/zJrdFzhA1zeay1vrR196+Vd3SmR48ePXq219Na6rue5+hIjx49qzeZh3r0rNNi/nygHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPidEgsNw3BbazyUUl4j6tM4jt+iIz169OjRs72e1jJd9OjR8wl6Dk169OhZp2W66Dlhz0UstNvFXXvuvm5RN1NYdKZHjx49erbX01rKu5776EiPHj2rN5mHevSs02L+nLjnMhYqJa7e7qen+L705PTk9OT05PTMK/vPM+mZoSenJ7e1nn2DnoyenJ555k9ujZ4jbJjLY631pa27f628ozM9evTo0bO9ntZS3/U8R0d69OhZvck81KNnnRbz5wP1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwO+UWGgYhtta46GU8hpRn8Zx/BYd6dGjR4+e7fW0lumiR4+eT9BzaNKjR886LdNFzwl7LmKh3S7u2nP3dYu6mcKiMz169OjRs72e1lLe9dxHR3r06FmXeahHz2ot5s+Jey5joVLi6u1+eorvS09OT05PTk9Oz7yy/zyTnhl6cnpyW+vZN+jJ6MnpmWf+5NboOcKGuTzWWl/auvvXyjs606NHjx492+tpLfVdz3N0pEePntWbzEM9etZpMX8+UA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8TomFhmG4rTUeSimvEfVpHMdv0ZEePXr06NleT2uZLnr06PkEPYcmPXr0rNMyXfScsOciFtrt4q49d1+3qJspLDrTo0ePHj3b62kt5V3PfXSkR4+e1ZvMQz161mkxf07ccxkLlRJXb/fTU3xfenJ6cnpyenJ65pX955n0zNCT05PbWs++QU9GT07PPPMnt0bPETbM5bHW+tLW3b9W3tGZHj169OjZXk9rqe96nqMjPXr0rN5kHurRs06L+fNnPT9ay88t/PsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+rQQAAACcgWEYotYoTXtV6ziOscRlLNSCblvQQwt6bUFPLehbdKRHjx49erbXM715NXr06PkEPYcmPXr0rNMyXfTkPV/auW+n9cRTO4t6LmKh3S7u2qL6uv2QbqYfVHSmR48ePXq219Nayrue++hIjx49qzeZh3r0rNNi/vy+5+sxexZvmNum++rtfvqrQl96cnpyenJ6cnrmlf0XgPTM0JPTk9taz75BT0ZPTs888ye3Rs8RNszlsdb60tbvv1bw0ZkePXr06NleT2up73qeoyM9evSs3mQe6tGzTov582c9P1rLzy38+wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6tBAAAAPwfDMMQtUZp2qtax3GMno7dcxkLtaDbFvTQgl5b0FML+hYd6dGjR4+e7fVMb16NHj16PkHPoUmPHj3rtEyXrfV8aee+ndYTT+2cVc9FLLTbxV1bVF+3/2g303+46EyPHj169Gyvp7WUdz330ZEePXpWbzIP9ehZp2WL8+frOfcs3jC3TffV2/30V46+9OT05PTk9OT0zCv7LwDpmaEnpye3tZ59g56MnpyeeeZPbo2eI2yYy2Ot9SWi/vpIQHSmR48ePXq219Na6rue5+hIjx49qzeZh3r0rNOy1fnzo7X83NDPZxM9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8DslFhqG4bbWeCilvEbUp3Ecv0VHevTo0aNnez2tZbro0aPnE/QcmvTo0bNOy3TRc8Kei1hot4u79tx93aJuprDoTI8ePXr0bK+ntZR3PffRkR49elZvMg/16Fmnxfw5cc9lLFRKXL3dT0/xfenJ6cnpyenJ6ZlX9p9n0jNDT05Pbms9+wY9GT05PfPMn9waPUfYMJfHWutLW3f/WnlHZ3r06NGjZ3s9raW+63mOjvTo0bN6k3moR88K/uu/RvPnA/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA75RYaBiG21rjoZTyGlGfxnH8Fh3p0aNHj57t9bSW6aJHj55P0HNo0qNHzzot00XPCXsuYqHdLu7ac/d1i7qZwqIzPXr06NGzvZ7WUt713EdHevToWb3JPNSjZ50W8+fEPZexUClx9XY/PcX3pSenJ6cnpyenZ17Zf55Jzww9OT25rfXsG/Rk9OT0zDN/cmv0HGHDXB5rrS9t3f1r5R2d6dGjR4+e7fW0lvqu5zk60qNHz+pN5qEePeu0mD8fqAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+p8RCwzDc1hoPpZTXiPo0juO36EiPHj169Gyvp7VMFz169HyCnkOTHj161mmZLnpO2HMRC+12cdeeu69b1M0UFp3p0aNHj57t9bSW8q7nPjrSo0fP6k3moR4967SYPyfuuYyFSomrt/vpKb4vPTk9OT05PTk988r+80x6ZujJ6cltrWffoCejJ6dnnvmTW6PnCBvm8lhrfWnr7l8r7+hMjx49evRsr6e11Hc9z9GRHj16Vm8yD/XoWafF/PlAPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA7JRYahuG21ngopbxG1KdxHL9FR3r06NGjZ3s9rWW66NGj5xP0HJr06NGzTst00XPCnotYaLeLu/bcfd2ibqaw6EyPHj169Gyvp7WUdz330ZEePWfeY/7o0XOmPebh6XsuY6FS4urtfnqK70tPTk9OT05PTs+8sv88k54ZenJ6clvr2TfoyejJ6Zln/uTW6DnChrk81lpf2rr718o7OtOjR48ePdvraS31Xc9zdKRHz5n3mD969Jxpj3n4sXoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgd0osNAzDba3xUEp5jahP4zh+i4705PTo0aOnU8t00aNHzyfoOTTp0aNnnZbpoueEPRex0G4Xd+25+7pF3Uxh0ZkePXr06NleT2sp73ruoyM9es68x/zRo+dMe8zD0/dcxkKlxNXb/fQU35eenJ6cnpyenJ55Zf95Jj0z9OT05LbWs2/Qk9GT0zPP/Mmt0XOEDXN5rLW+tHX3r5V3dKZHjx49erbX01rqu57n6EiPnjPvMX/06DnTHvPwY/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADA75RYaBiG21rjoZTyGlGfxnH8Fh3p0aNHj57t9bSW6aJHj55P0HNo0qNHzzot00XPCXsuYqHdLu7ac/d1i7qZwqIzPXr06NGzvZ7WUt713EdHevSceY/5o0fPmfaYh6fvuYyFSomrt/vpKb4vPTk9OT05PTk988r+80x6ZujJ6cltrWffoCejJ6dnnvmTW6PnCBvm8lhrfWnr7l8r7+hMjx49evRsr6e11Hc9z9GRHj1n3mP+6NFzpj3m4cfqAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgN8psdAwDLe1xkMp5TWiPo3j+C060qNHjx492+tpLdNFjx49n6Dn0KRHj551WqaLnhP2XMRCu13ctefu6xZ1M4VFZ3r06NGjZ3s9raW867mPjvToOfMe80ePnjPtMQ9P33MZC5USV2/301N8X3pyenJ6cnpyeuaV/eeZ9MzQk9OT21rPvkFPRk9OzzzzJ7dGzxE2zOWx1vrS1t2/Vt7RmR49evTo2V5Pa6nvep6jIz16zrzH/NGj50x7zMOP1QMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPxDiYWGYYhaozTtVa3jOEZPevTo0aNHjx49evTo0XOuPZzWRSx32873dv463PemJ6cnpyenJ6dnxvQ/G80XPXr0nH/PgXmY05PTM2P6fW/n9l//Gv57GP7f/5/uo6PP0LP4gXm3i7u2qL5uf3W5aechOtOjR48ePdvraS2lna9/67mPjvTo0bN6k3moR886LeVdzxbmz1n3XMZCpcTV2315jc705PTk9OT05PTMK/svAOmZoSenJ7e1nn2DnoyenJ555k9ujZ4jbJjLY631R0T92c5TdKZHjx49erbX01qqHj16PkfPoUmPHj3rtPzv7/tLa2kPg/U5OtIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8B0osNAxD1Bqlaa9qHccxetKjR48ePXr06NGjR48ePXqO0XMRy922872dvw73venJ6cnpyenJ6ZkxvXk1X/To0XP+PQfmYU5PTs8M8+f0PYsfmHe7uGuL6uv2FH/TzkN0pkePHj16ttfTWko7X//Wcx8d6dGjZ/Um81CPnnVazJ8T91zGQm3TffV2X16jMz05PTk9OT05PfPK/gtAemboyenJba1n36AnoyenZ575k1uj5wgb5vJYa/0RUX+28xSd6dGjR4+e7fW0lqpHj57P0XNo0qNHzzot5s8H6gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP6hxELDMEStUZr2qtZxHKMnPXr06NGjR48ePXr06NGj5xg9F7HcbTvf2/nrcN+bnpyenJ6cnpyeGdObV/NFjx49599zYB7m9OT0zDB/Tt+z+IF5t4u7tqi+bk/xN+08RGd69OjRo2d7Pa2ltPP1bz330ZEePXpWbzIP9ehZp8X8OXHPZSzUNt1Xb/flNTrTk9OT05PTk9Mzr+y/AKRnhp6cntzWevYNejJ6cnrmmT+5NXqOsGEuj7XWHxH1ZztP0ZkePXr06NleT2upevTo+Rw9hyY9evSs02L+fKAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgH0osNAxD1Bqlaa9qHccxetKjR48ePXr06NGjR48ePXqO0XMRy922872dvw73venJ6cnpyenJ6ZkxvXk1X/To0XP+PQfmYU5PTs8M8+f0PYsfmHe7uGuL6uv2FH/TzkN0pkePHj16ttfTWko7X//Wcx8d6dGjZ/Um81CPnnVazJ8T91zGQm3TffV2X16jMz05PTk9OT05PfPK/gtAemboyenJba1n36AnoyenZ575k1uj5wgb5vJYa/0RUX+28xSd6dGzhB49elZrqXr06PkcPYcmPXr0rNNi/nygHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B9KLDQMQ9QapWmvah3HMXrSo0ePHj169OjRo0ePHj16jtFzEcvdtvO9nb8O973pyenJ6cnpyemZMb15NV/06NFz/j0H5mFOT07PDPPn9D2LH5h3u7hri+rr9hR/085DdKZHjx49erbX01pKO1//1nMfHenRo2f1JvNQj551WsyfE/dcxkJt0331dl9eozM9OT05PTk9OT3zyv4LQHpm6MnpyW2tZ9+gJ6Mnp2ee+ZNbo+cIG+byWGv9EVF/tvMUnenRo0ePnu31tJaqR4+ez9FzaNKjR886LebPB+oBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+ocRCwzBErVGa9qrWcRyjJz169OjRo0ePHj169OjRo+cYPRex3G0739v563Dfm56cnpyenJ6cnhnTm1fzRY8ePeffc2Ae5vTk9Mwwf07fs/iBebeLu7aovm5P8TftPERnevTo0aNnez2tpbTz9W8999GRHj16Vm8yD/XoWafF/Dlxz2Us1DbdV2/35TU605PTk9OT05PTM6/svwCkZ4aenJ7c1nr2DXoyenJ65pk/uTV6jrBhLo+11h8R9Wc7T9GZHj169OjZXk9rqXr06PkcPYcmPXr0rNNi/nygHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4B9KLDQMQ9QapWmvah3HMXrSo0ePHj169OjRo0ePHj16jtFzEcvdtvO9nb8O973pyenJ6cnpyenJbaZnejNtvujRo2c15k9OT07PDPPn9D2LH5h3u7hri+rr9hR/085DdKZHjx49ej5Ez3101FpKO1/16NGzWpN5qEfPOi3mz4l7LmOhtum+ersvr9GZnpyenJ6cnpye3JZ6yv4LSXpm6Mnp+T3zJ6cnp2ee+ZNbo+cIG+byWGv9EVF/tvMUnenRo0ePHj1/0FL16NGzapMePXrWaTF/PlAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwDyUWGoYhao3StFe1juMYPenRo0ePHj169OjRo0ePHj3H6LmI5W7b+d7OX4f73vTk9OT05PTk9OQ20zO9mTZf9OjRsxrzJ6cn5/1Cz2Z6Fj8w73Zx1xbV1+0p/qadh+hMjx49evR8iJ776Ki1lHa+6tGjZ7Um81DPWfT4fddzGQu1TffV2315jc705PTk9OT05PTkttRT9l9I0jNDT07P75k/OT057xfz9OTW6DnChrk81lp/RNSf7TxFZ3r06NGjR88ftFQ9evSs2qRHz1n0+H3XAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHE2JhYZhiFqjNO1VreM4Rk969OjRo0ePHj169OjRo0fPMXouYrnbdr6389fhvjc9OT05PTk9OT25zfRMb6bNFz169KzG/MnpyXm/0LOZnsUPzLtd3LVF9XV7ir9p5yE606NHjx49H6LnPjpqLaWdr3r06FmtyTzUc6wev196uvZcxkJt0331dl9eozM9OT05PTk9OT25LfWU/ReS9MzQk9Pze+ZPTk/O+8U8Pbk1eo6wYS6PtdYfEfVnO0/RmR49evTo0fMHLVWPHj2rNunRcxY9ft/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8J/5H+5NWtTiRrvtAAAAAElFTkSuQmCC"></image></defs></svg></div><div class="rounded-full px-3 py-2.5 shadow-1 text-neutral-12 text-1-semi-bold w-fit mb-2 sm:mx-auto">500k developers 💪</div><div class="text-neutral-12 mb-4 text-9-bold max-w-[600px] sm:text-11-bold sm:mx-auto sm:text-center">We Develop Elite Developers</div><div class="text-3-regular mb-8 text-neutral-12 sm:text-center sm:max-w-[650px] sm:mx-auto">Access a library of books and courses on JavaScript, Python, AI, and more!</div><div class="flex flex-col gap-2 mb-20 sm:flex-row-reverse sm:gap-4 sm:justify-center sm:mb-[156px]"><a id="hero-library" href="/premium/library/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent text-primary-12 px-5 py-3 rounded-lg text-3 bg-primary-alpha-3 hover:bg-primary-alpha-4 focus-visible:bg-primary-alpha-4">Browse Library</a><a id="hero-cta" href="/premium/pricing/?ref_source=sitepoint&unlock=true&ref_medium=hp-hero" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent px-5 py-3 rounded-lg text-3 bg-primary-9 text-white hover:bg-primary-10 focus-visible:bg-primary-10">Start Free Trial</a></div><div class="flex justify-center -mx-5"><div class="overflow-x-hidden py-[32px] -my-[32px]"><div class="flex -ml-2"><div class="flex-initial pl-2"><a href="/premium/library/all/javascript/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" fill-rule="evenodd" d="M13.996 16.324c-1.309 0-2.155-.624-2.567-1.44l1.147-.665c.303.494.695.856 1.39.856.584 0 .956-.292.956-.694 0-.606-.808-.843-1.379-1.088-1.017-.432-1.692-.976-1.692-2.124 0-1.057.805-1.863 2.065-1.863.895 0 1.54.312 2.003 1.128l-1.097.705c-.242-.433-.503-.604-.906-.604-.414 0-.675.261-.675.604 0 .423.261.594.866.855 1.267.543 2.225.97 2.225 2.367 0 1.268-.997 1.963-2.336 1.963ZM10.75 14.2c0 1.46-.9 2.232-2.148 2.232-1.128 0-1.804-.431-2.136-1.181H6.447l1.146-.802c.221.393.421.67.904.67.463 0 .753-.234.753-.938V9.25h1.5v4.95ZM2.5 17.5h15v-15h-15v15Z" clip-rule="evenodd"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">JavaScript</div><div class="text-neutral-11 text-1 font-normal">184 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/php/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="M15.666 8.75c.145.16.18.437.104.828-.08.407-.232.697-.458.872-.226.174-.57.26-1.033.26h-.697l.428-2.201h.785c.436 0 .726.08.871.241ZM5.85 8.509h-.786l-.428 2.202h.698c.462 0 .806-.087 1.032-.261.226-.175.379-.465.458-.872.076-.391.041-.667-.104-.828-.145-.16-.435-.241-.87-.241ZM19.98 10c0 2.9-4.468 5.25-9.98 5.25C4.488 15.25.02 12.9.02 10S4.488 4.75 10 4.75c5.512 0 9.98 2.35 9.98 5.25Zm-12.224.363c.118-.213.203-.448.253-.705.121-.624.03-1.11-.275-1.457-.304-.348-.787-.522-1.45-.522H4.08l-1.023 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.07-.136.279-.091.533-.244.762-.458.192-.177.347-.371.467-.584Zm4.034 1.178.475-2.448c.097-.498.025-.859-.217-1.08-.242-.223-.682-.334-1.32-.334H9.717l.272-1.4H8.85l-1.023 5.262h1.137l.586-3.014h.909c.29 0 .48.048.57.144.09.097.108.277.057.542l-.453 2.328h1.156Zm4.89-3.34c-.304-.348-.787-.522-1.45-.522h-2.205l-1.022 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.069-.136.28-.091.534-.244.763-.458.192-.177.347-.371.466-.584a2.36 2.36 0 0 0 .253-.705c.122-.624.03-1.11-.274-1.457Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">PHP</div><div class="text-neutral-11 text-1 font-normal">33 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/ruby/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="M5.714 5.64c2.222-2.22 5.09-3.531 6.19-2.413 1.1 1.116-.065 3.834-2.291 6.052-2.224 2.219-5.056 3.601-6.155 2.486-1.102-1.117.028-3.905 2.254-6.124l.002-.002Zm9.375-3.135a2.664 2.664 0 0 1 2.388 3.01l.002-.014.009-.02-.852 11.235-11.062.764a2.754 2.754 0 0 1-3.06-3.018l-.002.012L3.54 12.59l2.073 4.872 1.75-5.743-.019.005.01-.019 5.775 1.857-.87-3.411-.618-2.45 5.503-.357-.384-.32-3.951-3.242L15.09 2.5l-.002.005Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Ruby</div><div class="text-neutral-11 text-1 font-normal">14 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/mobile/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 15h.008M9.167 5h1.666M7.667 17.5h4.666c.934 0 1.4 0 1.757-.182.314-.16.569-.414.728-.728.182-.357.182-.823.182-1.757V5.167c0-.934 0-1.4-.182-1.757a1.666 1.666 0 0 0-.728-.728c-.357-.182-.823-.182-1.757-.182H7.667c-.934 0-1.4 0-1.757.182-.314.16-.569.414-.728.728C5 3.767 5 4.233 5 5.167v9.666c0 .934 0 1.4.182 1.757.16.314.414.569.728.728.357.182.823.182 1.757.182Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Mobile</div><div class="text-neutral-11 text-1 font-normal">26 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/workflow/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="M6.667 13.487v-.57c0-.707.426-1.33 1.072-1.706a5.84 5.84 0 0 1-1.518-.943C5.468 10.947 5 11.883 5 12.917v.57a2.498 2.498 0 0 0-1.667 2.346c0 1.379 1.122 2.5 2.5 2.5 1.379 0 2.5-1.121 2.5-2.5 0-1.085-.699-2-1.666-2.346Zm-.834 3.18a.834.834 0 1 1 .002-1.669.834.834 0 0 1-.002 1.669Zm7.5-10.155v.293c0 .82-.446 1.543-1.12 1.967a5.848 5.848 0 0 1 1.519.916A3.943 3.943 0 0 0 15 6.806v-.293a2.497 2.497 0 0 0 1.667-2.346c0-1.379-1.122-2.5-2.5-2.5a2.503 2.503 0 0 0-2.5 2.5c0 1.085.699 2 1.666 2.345Zm.834-3.179a.834.834 0 1 1-.002 1.669.834.834 0 0 1 .002-1.669Zm.779 10.137C14.604 11.042 12.52 9.167 10 9.167a3.337 3.337 0 0 1-3.267-2.675 2.5 2.5 0 0 0 1.6-2.325c0-1.379-1.121-2.5-2.5-2.5a2.503 2.503 0 0 0-2.5 2.5c0 1.105.725 2.033 1.721 2.363.342 2.427 2.426 4.303 4.946 4.303 1.613 0 2.96 1.151 3.267 2.675a2.5 2.5 0 0 0-1.6 2.325c0 1.379 1.121 2.5 2.5 2.5 1.378 0 2.5-1.121 2.5-2.5a2.495 2.495 0 0 0-1.721-2.363ZM5.833 3.333a.834.834 0 1 1-.001 1.669.834.834 0 0 1 .001-1.669Zm8.334 13.334a.834.834 0 1 1 .001-1.669.834.834 0 0 1-.001 1.669Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Workflow</div><div class="text-neutral-11 text-1 font-normal">109 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/wordpress/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" fill-rule="evenodd" d="M16.581 6.402c.032.239.05.494.05.77 0 1.319-.122 1.393-2.86 9.311a7.498 7.498 0 0 0 2.81-10.081Zm-6.449 4.254-2.25 6.539a7.502 7.502 0 0 0 4.609-.12.679.679 0 0 1-.053-.103l-2.306-6.316Zm4.931-1.035c0-.927-.333-1.569-.619-2.068-.379-.618-.736-1.14-.736-1.759 0-.69.524-1.331 1.26-1.331.033 0 .065.004.097.006A7.472 7.472 0 0 0 10 2.5a7.49 7.49 0 0 0-6.266 3.38c.478.015 1.119.021 2.481-.085.405-.024.452.57.048.617 0 0-.406.048-.858.072l2.731 8.124 1.641-4.923L8.61 6.483a13.256 13.256 0 0 1-.786-.071c-.405-.024-.357-.642.047-.618 1.55.12 2.344.128 3.974 0 .405-.024.453.57.048.618 0 0-.407.048-.858.071l2.71 8.063c1.07-3.576 1.32-4.175 1.32-4.925ZM2.5 10a7.501 7.501 0 0 0 4.227 6.75L3.149 6.948A7.47 7.47 0 0 0 2.5 10Z" clip-rule="evenodd"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">WordPress</div><div class="text-neutral-11 text-1 font-normal">17 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/back-end/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.833 6.667 2.5 9.744l3.333 3.59m8.334-6.667L17.5 9.744l-3.333 3.59m-2.5-10L8.333 16.666"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Back End</div><div class="text-neutral-11 text-1 font-normal">69 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/htmlcss/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" fill-rule="evenodd" d="M14.026 7.034H7.639l.152 1.481h6.083c-.09 1.298-.36 4.047-.458 5.298L10 14.775v.003l-.008.003-3.419-1.203-.234-2.84h1.676l.119 1.527 1.861.694H10l1.858-.666.191-2.296H6.265c-.028-.297-.388-4.154-.45-4.444h8.36c-.047.488-.094.99-.15 1.48ZM3.334 2.59l1.213 13.442 5.445 1.371 5.46-1.399L16.665 2.59H3.334Z" clip-rule="evenodd"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">HTML & CSS</div><div class="text-neutral-11 text-1 font-normal">118 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/designux/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 2.5H7.5a2.5 2.5 0 0 0 0 5m2.5-5v5m0-5h2.5a2.5 2.5 0 0 1 0 5m-5 0H10m-2.5 0a2.5 2.5 0 1 0 0 5m2.5-5h2.5m-2.5 0v5m2.5-5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5Zm-2.5 5H7.5m2.5 0V15a2.5 2.5 0 1 1-2.5-2.5"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Design & UX</div><div class="text-neutral-11 text-1 font-normal">74 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/python/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20" class="size-6"><path fill="currentColor" d="M8.182 9.73h3.614c1.006 0 1.809-.83 1.809-1.84V4.446c0-.98-.828-1.717-1.81-1.88a11.289 11.289 0 0 0-1.884-.148 10.34 10.34 0 0 0-1.73.148c-1.53.27-1.808.836-1.808 1.88v1.38H9.99v.459H5.015c-1.052 0-1.972.632-2.26 1.834-.332 1.378-.347 2.238 0 3.677.257 1.071.871 1.835 1.923 1.835h1.244v-1.653c0-1.195 1.033-2.248 2.26-2.248Zm-.228-4.825a.683.683 0 0 1-.679-.687c0-.382.304-.692.679-.692.374 0 .679.31.679.692 0 .38-.305.687-.679.687Zm9.269 3.213c-.26-1.046-.756-1.834-1.81-1.834h-1.357V7.89c0 1.245-1.056 2.293-2.26 2.293H8.182c-.99 0-1.81.848-1.81 1.84v3.444c0 .98.853 1.558 1.81 1.838 1.145.337 2.243.398 3.614 0 .91-.263 1.809-.794 1.809-1.838V14.09H9.99v-.46h5.423c1.051 0 1.443-.733 1.809-1.834.377-1.133.361-2.223 0-3.677Zm-5.2 6.89c.376 0 .68.308.68.688a.686.686 0 0 1-.68.691.687.687 0 0 1-.679-.691c0-.38.306-.688.68-.688Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Python</div><div class="text-neutral-11 text-1 font-normal">44 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/web/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.5 10h15m-15 0a7.5 7.5 0 0 0 7.5 7.5M2.5 10A7.5 7.5 0 0 1 10 2.5m7.5 7.5a7.5 7.5 0 0 1-7.5 7.5m7.5-7.5A7.5 7.5 0 0 0 10 2.5m0 15c-6.037-6.6-2.515-12.75 0-15m0 15c6.037-6.6 2.515-12.75 0-15"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Web</div><div class="text-neutral-11 text-1 font-normal">47 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/blockchain/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="m15.936 6.219-3.833-3.884a2.176 2.176 0 0 0-1.562-.668 2.157 2.157 0 0 0-1.563.668L5.134 6.219l5.386 2.716 5.416-2.716Zm1.471 1.568.76.769a2.191 2.191 0 0 1 .666 1.579 2.209 2.209 0 0 1-.665 1.579l-6.126 6.25c-.145.151-.314.276-.5.37v-7.578l5.865-2.969Zm-13.814 0-.76.769a2.19 2.19 0 0 0-.666 1.579 2.21 2.21 0 0 0 .665 1.579l6.127 6.25c.146.151.314.276.5.37v-7.578L3.593 7.787Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Blockchain</div><div class="text-neutral-11 text-1 font-normal">7 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/devops/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 15a2.5 2.5 0 0 1-5 0m5 0a2.5 2.5 0 0 0-2.5-2.5M13 15h5M8 15a2.5 2.5 0 0 1 2.5-2.5M8 15H3m7.5-2.5V10m-2 0c-1.657 0-3-1.283-3-2.866 0-1.313 1-2.525 2.5-2.759A3.16 3.16 0 0 1 10.883 2.5c1.664 0 3.024 1.244 3.117 2.813a2.5 2.5 0 0 1 1.5 2.275C15.5 8.92 14.38 10 13 10H8.5Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Cloud & DevOps</div><div class="text-neutral-11 text-1 font-normal">26 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/javascript/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" fill-rule="evenodd" d="M13.996 16.324c-1.309 0-2.155-.624-2.567-1.44l1.147-.665c.303.494.695.856 1.39.856.584 0 .956-.292.956-.694 0-.606-.808-.843-1.379-1.088-1.017-.432-1.692-.976-1.692-2.124 0-1.057.805-1.863 2.065-1.863.895 0 1.54.312 2.003 1.128l-1.097.705c-.242-.433-.503-.604-.906-.604-.414 0-.675.261-.675.604 0 .423.261.594.866.855 1.267.543 2.225.97 2.225 2.367 0 1.268-.997 1.963-2.336 1.963ZM10.75 14.2c0 1.46-.9 2.232-2.148 2.232-1.128 0-1.804-.431-2.136-1.181H6.447l1.146-.802c.221.393.421.67.904.67.463 0 .753-.234.753-.938V9.25h1.5v4.95ZM2.5 17.5h15v-15h-15v15Z" clip-rule="evenodd"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">JavaScript</div><div class="text-neutral-11 text-1 font-normal">184 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/php/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="M15.666 8.75c.145.16.18.437.104.828-.08.407-.232.697-.458.872-.226.174-.57.26-1.033.26h-.697l.428-2.201h.785c.436 0 .726.08.871.241ZM5.85 8.509h-.786l-.428 2.202h.698c.462 0 .806-.087 1.032-.261.226-.175.379-.465.458-.872.076-.391.041-.667-.104-.828-.145-.16-.435-.241-.87-.241ZM19.98 10c0 2.9-4.468 5.25-9.98 5.25C4.488 15.25.02 12.9.02 10S4.488 4.75 10 4.75c5.512 0 9.98 2.35 9.98 5.25Zm-12.224.363c.118-.213.203-.448.253-.705.121-.624.03-1.11-.275-1.457-.304-.348-.787-.522-1.45-.522H4.08l-1.023 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.07-.136.279-.091.533-.244.762-.458.192-.177.347-.371.467-.584Zm4.034 1.178.475-2.448c.097-.498.025-.859-.217-1.08-.242-.223-.682-.334-1.32-.334H9.717l.272-1.4H8.85l-1.023 5.262h1.137l.586-3.014h.909c.29 0 .48.048.57.144.09.097.108.277.057.542l-.453 2.328h1.156Zm4.89-3.34c-.304-.348-.787-.522-1.45-.522h-2.205l-1.022 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.069-.136.28-.091.534-.244.763-.458.192-.177.347-.371.466-.584a2.36 2.36 0 0 0 .253-.705c.122-.624.03-1.11-.274-1.457Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">PHP</div><div class="text-neutral-11 text-1 font-normal">33 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/ruby/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="M5.714 5.64c2.222-2.22 5.09-3.531 6.19-2.413 1.1 1.116-.065 3.834-2.291 6.052-2.224 2.219-5.056 3.601-6.155 2.486-1.102-1.117.028-3.905 2.254-6.124l.002-.002Zm9.375-3.135a2.664 2.664 0 0 1 2.388 3.01l.002-.014.009-.02-.852 11.235-11.062.764a2.754 2.754 0 0 1-3.06-3.018l-.002.012L3.54 12.59l2.073 4.872 1.75-5.743-.019.005.01-.019 5.775 1.857-.87-3.411-.618-2.45 5.503-.357-.384-.32-3.951-3.242L15.09 2.5l-.002.005Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Ruby</div><div class="text-neutral-11 text-1 font-normal">14 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/mobile/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 15h.008M9.167 5h1.666M7.667 17.5h4.666c.934 0 1.4 0 1.757-.182.314-.16.569-.414.728-.728.182-.357.182-.823.182-1.757V5.167c0-.934 0-1.4-.182-1.757a1.666 1.666 0 0 0-.728-.728c-.357-.182-.823-.182-1.757-.182H7.667c-.934 0-1.4 0-1.757.182-.314.16-.569.414-.728.728C5 3.767 5 4.233 5 5.167v9.666c0 .934 0 1.4.182 1.757.16.314.414.569.728.728.357.182.823.182 1.757.182Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Mobile</div><div class="text-neutral-11 text-1 font-normal">26 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/workflow/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="M6.667 13.487v-.57c0-.707.426-1.33 1.072-1.706a5.84 5.84 0 0 1-1.518-.943C5.468 10.947 5 11.883 5 12.917v.57a2.498 2.498 0 0 0-1.667 2.346c0 1.379 1.122 2.5 2.5 2.5 1.379 0 2.5-1.121 2.5-2.5 0-1.085-.699-2-1.666-2.346Zm-.834 3.18a.834.834 0 1 1 .002-1.669.834.834 0 0 1-.002 1.669Zm7.5-10.155v.293c0 .82-.446 1.543-1.12 1.967a5.848 5.848 0 0 1 1.519.916A3.943 3.943 0 0 0 15 6.806v-.293a2.497 2.497 0 0 0 1.667-2.346c0-1.379-1.122-2.5-2.5-2.5a2.503 2.503 0 0 0-2.5 2.5c0 1.085.699 2 1.666 2.345Zm.834-3.179a.834.834 0 1 1-.002 1.669.834.834 0 0 1 .002-1.669Zm.779 10.137C14.604 11.042 12.52 9.167 10 9.167a3.337 3.337 0 0 1-3.267-2.675 2.5 2.5 0 0 0 1.6-2.325c0-1.379-1.121-2.5-2.5-2.5a2.503 2.503 0 0 0-2.5 2.5c0 1.105.725 2.033 1.721 2.363.342 2.427 2.426 4.303 4.946 4.303 1.613 0 2.96 1.151 3.267 2.675a2.5 2.5 0 0 0-1.6 2.325c0 1.379 1.121 2.5 2.5 2.5 1.378 0 2.5-1.121 2.5-2.5a2.495 2.495 0 0 0-1.721-2.363ZM5.833 3.333a.834.834 0 1 1-.001 1.669.834.834 0 0 1 .001-1.669Zm8.334 13.334a.834.834 0 1 1 .001-1.669.834.834 0 0 1-.001 1.669Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Workflow</div><div class="text-neutral-11 text-1 font-normal">109 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/wordpress/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" fill-rule="evenodd" d="M16.581 6.402c.032.239.05.494.05.77 0 1.319-.122 1.393-2.86 9.311a7.498 7.498 0 0 0 2.81-10.081Zm-6.449 4.254-2.25 6.539a7.502 7.502 0 0 0 4.609-.12.679.679 0 0 1-.053-.103l-2.306-6.316Zm4.931-1.035c0-.927-.333-1.569-.619-2.068-.379-.618-.736-1.14-.736-1.759 0-.69.524-1.331 1.26-1.331.033 0 .065.004.097.006A7.472 7.472 0 0 0 10 2.5a7.49 7.49 0 0 0-6.266 3.38c.478.015 1.119.021 2.481-.085.405-.024.452.57.048.617 0 0-.406.048-.858.072l2.731 8.124 1.641-4.923L8.61 6.483a13.256 13.256 0 0 1-.786-.071c-.405-.024-.357-.642.047-.618 1.55.12 2.344.128 3.974 0 .405-.024.453.57.048.618 0 0-.407.048-.858.071l2.71 8.063c1.07-3.576 1.32-4.175 1.32-4.925ZM2.5 10a7.501 7.501 0 0 0 4.227 6.75L3.149 6.948A7.47 7.47 0 0 0 2.5 10Z" clip-rule="evenodd"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">WordPress</div><div class="text-neutral-11 text-1 font-normal">17 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/back-end/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.833 6.667 2.5 9.744l3.333 3.59m8.334-6.667L17.5 9.744l-3.333 3.59m-2.5-10L8.333 16.666"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Back End</div><div class="text-neutral-11 text-1 font-normal">69 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/htmlcss/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" fill-rule="evenodd" d="M14.026 7.034H7.639l.152 1.481h6.083c-.09 1.298-.36 4.047-.458 5.298L10 14.775v.003l-.008.003-3.419-1.203-.234-2.84h1.676l.119 1.527 1.861.694H10l1.858-.666.191-2.296H6.265c-.028-.297-.388-4.154-.45-4.444h8.36c-.047.488-.094.99-.15 1.48ZM3.334 2.59l1.213 13.442 5.445 1.371 5.46-1.399L16.665 2.59H3.334Z" clip-rule="evenodd"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">HTML & CSS</div><div class="text-neutral-11 text-1 font-normal">118 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/designux/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 2.5H7.5a2.5 2.5 0 0 0 0 5m2.5-5v5m0-5h2.5a2.5 2.5 0 0 1 0 5m-5 0H10m-2.5 0a2.5 2.5 0 1 0 0 5m2.5-5h2.5m-2.5 0v5m2.5-5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5Zm-2.5 5H7.5m2.5 0V15a2.5 2.5 0 1 1-2.5-2.5"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Design & UX</div><div class="text-neutral-11 text-1 font-normal">74 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/python/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20" class="size-6"><path fill="currentColor" d="M8.182 9.73h3.614c1.006 0 1.809-.83 1.809-1.84V4.446c0-.98-.828-1.717-1.81-1.88a11.289 11.289 0 0 0-1.884-.148 10.34 10.34 0 0 0-1.73.148c-1.53.27-1.808.836-1.808 1.88v1.38H9.99v.459H5.015c-1.052 0-1.972.632-2.26 1.834-.332 1.378-.347 2.238 0 3.677.257 1.071.871 1.835 1.923 1.835h1.244v-1.653c0-1.195 1.033-2.248 2.26-2.248Zm-.228-4.825a.683.683 0 0 1-.679-.687c0-.382.304-.692.679-.692.374 0 .679.31.679.692 0 .38-.305.687-.679.687Zm9.269 3.213c-.26-1.046-.756-1.834-1.81-1.834h-1.357V7.89c0 1.245-1.056 2.293-2.26 2.293H8.182c-.99 0-1.81.848-1.81 1.84v3.444c0 .98.853 1.558 1.81 1.838 1.145.337 2.243.398 3.614 0 .91-.263 1.809-.794 1.809-1.838V14.09H9.99v-.46h5.423c1.051 0 1.443-.733 1.809-1.834.377-1.133.361-2.223 0-3.677Zm-5.2 6.89c.376 0 .68.308.68.688a.686.686 0 0 1-.68.691.687.687 0 0 1-.679-.691c0-.38.306-.688.68-.688Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Python</div><div class="text-neutral-11 text-1 font-normal">44 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/web/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.5 10h15m-15 0a7.5 7.5 0 0 0 7.5 7.5M2.5 10A7.5 7.5 0 0 1 10 2.5m7.5 7.5a7.5 7.5 0 0 1-7.5 7.5m7.5-7.5A7.5 7.5 0 0 0 10 2.5m0 15c-6.037-6.6-2.515-12.75 0-15m0 15c6.037-6.6 2.515-12.75 0-15"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Web</div><div class="text-neutral-11 text-1 font-normal">47 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/blockchain/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path fill="currentColor" d="m15.936 6.219-3.833-3.884a2.176 2.176 0 0 0-1.562-.668 2.157 2.157 0 0 0-1.563.668L5.134 6.219l5.386 2.716 5.416-2.716Zm1.471 1.568.76.769a2.191 2.191 0 0 1 .666 1.579 2.209 2.209 0 0 1-.665 1.579l-6.126 6.25c-.145.151-.314.276-.5.37v-7.578l5.865-2.969Zm-13.814 0-.76.769a2.19 2.19 0 0 0-.666 1.579 2.21 2.21 0 0 0 .665 1.579l6.127 6.25c.146.151.314.276.5.37v-7.578L3.593 7.787Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Blockchain</div><div class="text-neutral-11 text-1 font-normal">7 courses</div></div></div></a></div><div class="flex-initial pl-2"><a href="/premium/library/all/devops/" class=""><div class="bg-white shadow-2 border border-neutral-alpha-5 p-5 rounded-2xl flex flex-col w-[166px] gap-4 hover:border-primary-9 active:shadow-1 cursor-pointer"><div class="flex items-center justify-center rounded-full size-10 bg-neutral-alpha-3"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-6"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 15a2.5 2.5 0 0 1-5 0m5 0a2.5 2.5 0 0 0-2.5-2.5M13 15h5M8 15a2.5 2.5 0 0 1 2.5-2.5M8 15H3m7.5-2.5V10m-2 0c-1.657 0-3-1.283-3-2.866 0-1.313 1-2.525 2.5-2.759A3.16 3.16 0 0 1 10.883 2.5c1.664 0 3.024 1.244 3.117 2.813a2.5 2.5 0 0 1 1.5 2.275C15.5 8.92 14.38 10 13 10H8.5Z"></path></svg></div><div class="flex flex-col"><div class="font-medium text-neutral-12 text-2">Cloud & DevOps</div><div class="text-neutral-11 text-1 font-normal">26 courses</div></div></div></a></div></div></div></div></div><div class="px-5 pt-16 pb-8 sm:pt-20 sm:pb-10 container-12"><div class="mb-2 text-5-bold text-neutral-12 sm:text-7-bold sm:mb-4 sm:text-center">Explore over 700 courses</div><p class="mb-8 text-3-regular text-neutral-11 sm:text-center mb:10 ">Browse our comprehensive collection of courses, books, and tutorials on a wide range of development and design topics.</p><div class="flex flex-wrap mb-8 -mr-4 text-neutral-12 sm:justify-center"><a href="https://www.sitepoint.com/premium/library/all/javascript/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" fill-rule="evenodd" d="M13.996 16.324c-1.309 0-2.155-.624-2.567-1.44l1.147-.665c.303.494.695.856 1.39.856.584 0 .956-.292.956-.694 0-.606-.808-.843-1.379-1.088-1.017-.432-1.692-.976-1.692-2.124 0-1.057.805-1.863 2.065-1.863.895 0 1.54.312 2.003 1.128l-1.097.705c-.242-.433-.503-.604-.906-.604-.414 0-.675.261-.675.604 0 .423.261.594.866.855 1.267.543 2.225.97 2.225 2.367 0 1.268-.997 1.963-2.336 1.963ZM10.75 14.2c0 1.46-.9 2.232-2.148 2.232-1.128 0-1.804-.431-2.136-1.181H6.447l1.146-.802c.221.393.421.67.904.67.463 0 .753-.234.753-.938V9.25h1.5v4.95ZM2.5 17.5h15v-15h-15v15Z" clip-rule="evenodd"></path></svg></span><span class="font-medium text-2">JavaScript</span></a><a href="https://www.sitepoint.com/premium/library/all/php/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="M15.666 8.75c.145.16.18.437.104.828-.08.407-.232.697-.458.872-.226.174-.57.26-1.033.26h-.697l.428-2.201h.785c.436 0 .726.08.871.241ZM5.85 8.509h-.786l-.428 2.202h.698c.462 0 .806-.087 1.032-.261.226-.175.379-.465.458-.872.076-.391.041-.667-.104-.828-.145-.16-.435-.241-.87-.241ZM19.98 10c0 2.9-4.468 5.25-9.98 5.25C4.488 15.25.02 12.9.02 10S4.488 4.75 10 4.75c5.512 0 9.98 2.35 9.98 5.25Zm-12.224.363c.118-.213.203-.448.253-.705.121-.624.03-1.11-.275-1.457-.304-.348-.787-.522-1.45-.522H4.08l-1.023 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.07-.136.279-.091.533-.244.762-.458.192-.177.347-.371.467-.584Zm4.034 1.178.475-2.448c.097-.498.025-.859-.217-1.08-.242-.223-.682-.334-1.32-.334H9.717l.272-1.4H8.85l-1.023 5.262h1.137l.586-3.014h.909c.29 0 .48.048.57.144.09.097.108.277.057.542l-.453 2.328h1.156Zm4.89-3.34c-.304-.348-.787-.522-1.45-.522h-2.205l-1.022 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.069-.136.28-.091.534-.244.763-.458.192-.177.347-.371.466-.584a2.36 2.36 0 0 0 .253-.705c.122-.624.03-1.11-.274-1.457Z"></path></svg></span><span class="font-medium text-2">PHP</span></a><a href="https://www.sitepoint.com/premium/library/all/ruby/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="M5.714 5.64c2.222-2.22 5.09-3.531 6.19-2.413 1.1 1.116-.065 3.834-2.291 6.052-2.224 2.219-5.056 3.601-6.155 2.486-1.102-1.117.028-3.905 2.254-6.124l.002-.002Zm9.375-3.135a2.664 2.664 0 0 1 2.388 3.01l.002-.014.009-.02-.852 11.235-11.062.764a2.754 2.754 0 0 1-3.06-3.018l-.002.012L3.54 12.59l2.073 4.872 1.75-5.743-.019.005.01-.019 5.775 1.857-.87-3.411-.618-2.45 5.503-.357-.384-.32-3.951-3.242L15.09 2.5l-.002.005Z"></path></svg></span><span class="font-medium text-2">Ruby</span></a><a href="https://www.sitepoint.com/premium/library/all/mobile/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 15h.008M9.167 5h1.666M7.667 17.5h4.666c.934 0 1.4 0 1.757-.182.314-.16.569-.414.728-.728.182-.357.182-.823.182-1.757V5.167c0-.934 0-1.4-.182-1.757a1.666 1.666 0 0 0-.728-.728c-.357-.182-.823-.182-1.757-.182H7.667c-.934 0-1.4 0-1.757.182-.314.16-.569.414-.728.728C5 3.767 5 4.233 5 5.167v9.666c0 .934 0 1.4.182 1.757.16.314.414.569.728.728.357.182.823.182 1.757.182Z"></path></svg></span><span class="font-medium text-2">Mobile</span></a><a href="https://www.sitepoint.com/premium/library/all/workflow/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="M6.667 13.487v-.57c0-.707.426-1.33 1.072-1.706a5.84 5.84 0 0 1-1.518-.943C5.468 10.947 5 11.883 5 12.917v.57a2.498 2.498 0 0 0-1.667 2.346c0 1.379 1.122 2.5 2.5 2.5 1.379 0 2.5-1.121 2.5-2.5 0-1.085-.699-2-1.666-2.346Zm-.834 3.18a.834.834 0 1 1 .002-1.669.834.834 0 0 1-.002 1.669Zm7.5-10.155v.293c0 .82-.446 1.543-1.12 1.967a5.848 5.848 0 0 1 1.519.916A3.943 3.943 0 0 0 15 6.806v-.293a2.497 2.497 0 0 0 1.667-2.346c0-1.379-1.122-2.5-2.5-2.5a2.503 2.503 0 0 0-2.5 2.5c0 1.085.699 2 1.666 2.345Zm.834-3.179a.834.834 0 1 1-.002 1.669.834.834 0 0 1 .002-1.669Zm.779 10.137C14.604 11.042 12.52 9.167 10 9.167a3.337 3.337 0 0 1-3.267-2.675 2.5 2.5 0 0 0 1.6-2.325c0-1.379-1.121-2.5-2.5-2.5a2.503 2.503 0 0 0-2.5 2.5c0 1.105.725 2.033 1.721 2.363.342 2.427 2.426 4.303 4.946 4.303 1.613 0 2.96 1.151 3.267 2.675a2.5 2.5 0 0 0-1.6 2.325c0 1.379 1.121 2.5 2.5 2.5 1.378 0 2.5-1.121 2.5-2.5a2.495 2.495 0 0 0-1.721-2.363ZM5.833 3.333a.834.834 0 1 1-.001 1.669.834.834 0 0 1 .001-1.669Zm8.334 13.334a.834.834 0 1 1 .001-1.669.834.834 0 0 1-.001 1.669Z"></path></svg></span><span class="font-medium text-2">Workflow</span></a><a href="https://www.sitepoint.com/premium/library/all/wordpress/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" fill-rule="evenodd" d="M16.581 6.402c.032.239.05.494.05.77 0 1.319-.122 1.393-2.86 9.311a7.498 7.498 0 0 0 2.81-10.081Zm-6.449 4.254-2.25 6.539a7.502 7.502 0 0 0 4.609-.12.679.679 0 0 1-.053-.103l-2.306-6.316Zm4.931-1.035c0-.927-.333-1.569-.619-2.068-.379-.618-.736-1.14-.736-1.759 0-.69.524-1.331 1.26-1.331.033 0 .065.004.097.006A7.472 7.472 0 0 0 10 2.5a7.49 7.49 0 0 0-6.266 3.38c.478.015 1.119.021 2.481-.085.405-.024.452.57.048.617 0 0-.406.048-.858.072l2.731 8.124 1.641-4.923L8.61 6.483a13.256 13.256 0 0 1-.786-.071c-.405-.024-.357-.642.047-.618 1.55.12 2.344.128 3.974 0 .405-.024.453.57.048.618 0 0-.407.048-.858.071l2.71 8.063c1.07-3.576 1.32-4.175 1.32-4.925ZM2.5 10a7.501 7.501 0 0 0 4.227 6.75L3.149 6.948A7.47 7.47 0 0 0 2.5 10Z" clip-rule="evenodd"></path></svg></span><span class="font-medium text-2">WordPress</span></a><a href="https://www.sitepoint.com/premium/library/all/back-end/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5.833 6.667 2.5 9.744l3.333 3.59m8.334-6.667L17.5 9.744l-3.333 3.59m-2.5-10L8.333 16.666"></path></svg></span><span class="font-medium text-2">Back End</span></a><a href="https://www.sitepoint.com/premium/library/all/htmlcss/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" fill-rule="evenodd" d="M14.026 7.034H7.639l.152 1.481h6.083c-.09 1.298-.36 4.047-.458 5.298L10 14.775v.003l-.008.003-3.419-1.203-.234-2.84h1.676l.119 1.527 1.861.694H10l1.858-.666.191-2.296H6.265c-.028-.297-.388-4.154-.45-4.444h8.36c-.047.488-.094.99-.15 1.48ZM3.334 2.59l1.213 13.442 5.445 1.371 5.46-1.399L16.665 2.59H3.334Z" clip-rule="evenodd"></path></svg></span><span class="font-medium text-2">HTML & CSS</span></a><a href="https://www.sitepoint.com/premium/library/all/designux/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 2.5H7.5a2.5 2.5 0 0 0 0 5m2.5-5v5m0-5h2.5a2.5 2.5 0 0 1 0 5m-5 0H10m-2.5 0a2.5 2.5 0 1 0 0 5m2.5-5h2.5m-2.5 0v5m2.5-5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5Zm-2.5 5H7.5m2.5 0V15a2.5 2.5 0 1 1-2.5-2.5"></path></svg></span><span class="font-medium text-2">Design & UX</span></a><a href="https://www.sitepoint.com/premium/library/all/python/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20" class="size-5"><path fill="currentColor" d="M8.182 9.73h3.614c1.006 0 1.809-.83 1.809-1.84V4.446c0-.98-.828-1.717-1.81-1.88a11.289 11.289 0 0 0-1.884-.148 10.34 10.34 0 0 0-1.73.148c-1.53.27-1.808.836-1.808 1.88v1.38H9.99v.459H5.015c-1.052 0-1.972.632-2.26 1.834-.332 1.378-.347 2.238 0 3.677.257 1.071.871 1.835 1.923 1.835h1.244v-1.653c0-1.195 1.033-2.248 2.26-2.248Zm-.228-4.825a.683.683 0 0 1-.679-.687c0-.382.304-.692.679-.692.374 0 .679.31.679.692 0 .38-.305.687-.679.687Zm9.269 3.213c-.26-1.046-.756-1.834-1.81-1.834h-1.357V7.89c0 1.245-1.056 2.293-2.26 2.293H8.182c-.99 0-1.81.848-1.81 1.84v3.444c0 .98.853 1.558 1.81 1.838 1.145.337 2.243.398 3.614 0 .91-.263 1.809-.794 1.809-1.838V14.09H9.99v-.46h5.423c1.051 0 1.443-.733 1.809-1.834.377-1.133.361-2.223 0-3.677Zm-5.2 6.89c.376 0 .68.308.68.688a.686.686 0 0 1-.68.691.687.687 0 0 1-.679-.691c0-.38.306-.688.68-.688Z"></path></svg></span><span class="font-medium text-2">Python</span></a><a href="https://www.sitepoint.com/premium/library/all/web/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.5 10h15m-15 0a7.5 7.5 0 0 0 7.5 7.5M2.5 10A7.5 7.5 0 0 1 10 2.5m7.5 7.5a7.5 7.5 0 0 1-7.5 7.5m7.5-7.5A7.5 7.5 0 0 0 10 2.5m0 15c-6.037-6.6-2.515-12.75 0-15m0 15c6.037-6.6 2.515-12.75 0-15"></path></svg></span><span class="font-medium text-2">Web</span></a><a href="https://www.sitepoint.com/premium/library/all/blockchain/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="m15.936 6.219-3.833-3.884a2.176 2.176 0 0 0-1.562-.668 2.157 2.157 0 0 0-1.563.668L5.134 6.219l5.386 2.716 5.416-2.716Zm1.471 1.568.76.769a2.191 2.191 0 0 1 .666 1.579 2.209 2.209 0 0 1-.665 1.579l-6.126 6.25c-.145.151-.314.276-.5.37v-7.578l5.865-2.969Zm-13.814 0-.76.769a2.19 2.19 0 0 0-.666 1.579 2.21 2.21 0 0 0 .665 1.579l6.127 6.25c.146.151.314.276.5.37v-7.578L3.593 7.787Z"></path></svg></span><span class="font-medium text-2">Blockchain</span></a><a href="https://www.sitepoint.com/premium/library/all/devops/" class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mb-4 mr-4"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 15a2.5 2.5 0 0 1-5 0m5 0a2.5 2.5 0 0 0-2.5-2.5M13 15h5M8 15a2.5 2.5 0 0 1 2.5-2.5M8 15H3m7.5-2.5V10m-2 0c-1.657 0-3-1.283-3-2.866 0-1.313 1-2.525 2.5-2.759A3.16 3.16 0 0 1 10.883 2.5c1.664 0 3.024 1.244 3.117 2.813a2.5 2.5 0 0 1 1.5 2.275C15.5 8.92 14.38 10 13 10H8.5Z"></path></svg></span><span class="font-medium text-2">Cloud & DevOps</span></a></div><div class="flex gap-6 mb-8 overflow-x-auto sm:mb-10 sm:grid sm:grid-cols-3 lg:grid-cols-4 sm:gap-y-10 "><a href="/premium/courses/django-a-z-build-deploy-web-projects-with-python-django-3219/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADTUlEQVQokTXS/VMTBBzH8f1e6mn40N0ywbHhniCUhzKjQwIrFKy0y/Muxi5ocyJjSYgYuDEcDMfcGBtzJPJ0ScUwD/DMjY2HSuaJ4AMYOvpB4peuX7p+qF/eHYz+gdd97/t5C14oCrChdJy48im2nbmP0DhHvDWK2LmE1PcHKX1/kTbwD+mD/5J67W/knX8icS+TaFtEaoygMNwg/uQIL2nGWKcOIVinCrK9/CdS6u6hMD8gwTxPfFMUSetzlN4l9njnyXBHyPBESPM9Ibnjd5LcyyTZorxRe5Mc7UVSSnxs1QRi4JbSELkNP1NxdRJt1x0y7Y9JsEaRXlog2TyCTGdCXnyC1FI9aaeb2d14C5nzGZKWKOl1Ad4u86DU9rBFMxoDhdowKmeI7uEB3EMjHHA/INH6FLkpgLhIjzg/lzz1MY6Wf06W6jiKzypRmANIbFFEpllEVWMI9WE2aSdiYFxJiPcuhDB+cxN9b5iMlseIGx8hM7Qj++hDCrWf0uC5RJPPxQc6FaJD+eyqcJPUPM928wIvn51ls+EuG7WTMfDFoiDCU+O8VncHRf19EsxPkFyYQapr5i3Vcc7ZLfT8MECnvx91tZ6d7+5HrLEgtT7k1YYYGGe4y4b/wZVRNmsn2FoRYVvVysrziC0PkRu87FWp0NRWYvW14ezuQF1dTtLhApL0bexau3DH2WnEhnGE2lHWq0cR7CwL8WbtOJmmKRK+mlnNRtS0gNx0G2XJl6QeLSRP/QnF1RUUlGlJLq1CXv8jYluUHfVzZNaMcazyW7J0fjaqAwj21YxR7AjzseMXZKYZXjHOxVa2/0qyeRjpifPIijS8rjvN3mr72spPVztUmu9xqG6I0jN9ZJ/0s2kFVH4xxkHLJDmNEUS1swjPxzoUty6h8D5nd/sc6W1Tqx3uWetQ0raMyLZIqmWa3IYwObVBEk+FWL/yw4wKP9k1Q2Qbb7GvPkiWdYL9jinyvNO8f/URhf0LHBlc5Mj13zj83TPye+Y44JvhHVeEvJYJCmxBCq23yTo3TKp+EEGTvRGr04rNY8Puc+DodOHq9eC+dpn277/m8vUuOoZ66RjuxXejG6//Cp5+H66+dpxdbTivOGn12WlxX8TqaOI/6hxOS04orAQAAAAASUVORK5CYII=" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="Django A-Z: Build & Deploy Web Projects With Python & Django"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/a3ff09589d7094bc0e764e7fea77bbe7cee7c77d-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="Django A-Z: Build & Deploy Web Projects With Python & Django"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">Python</span><div class="text-3-regular text-neutral-12">Django A-Z: Build & Deploy Web Projects With Python & Django</div></div></div></div></a><a href="/premium/courses/git-github-masterclass-the-practical-bootcamp-3220/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACo0lEQVQokX2S60uTYRTA9wdUdLGbZkXXjZYVBn2ITFMru32L9UkrxLLRLKcZq3c6nbtoazosL61cTqW1HFZqUKZdKOctL0kXJhRIQpQJWfTxF88baIH54Tyc649znnMUczQ1zEu5zaL0JiKy2lhhDLLaNojSFULt/sSW+nG2Bn7JInThU7qG5ZwVUpBwfZtcKxhzNF4U4hHGwpP3Cc98xHKp4x9gdP03Yhq+E9MwQfQkMDQzcEHKLVam1bMh4xZKw0PWWPtYXxoi6von9tWOkH2jm+yqDpI8H4j6u0PjNMDZGi+Lk73E6io5lltJguRjvbkTlStEYsVbLFcf8bKojBdGG2Z7gITyN6hmGnm2xsuS5Br2Zldz1lHH/oIAKnOQOOcr8vNq6TqTw7jJwHihkc6cXExmnxxbaxuYeWSVroGY3GY2m9qJsvVwytLEk+NavhyMZ+LsCX46rYxL53iql+SY2t7HcmOQiP8tZXH6fSKzWuV/Udv7SbO20JqawWcBTE/hh+k8Y9k62vVGTlpb/gClaYFTZyPaF2OIcXY4BzDk3+b5KT1fdScYy9TyItOAVHiHmJJ+1tkHURZ0oZKesUzXwvxJ4JEa2Zi6ww7W2AbkpcRVvMfoaKL9goUnhkLyLt0jvuKdHFMWvybW1c+Bsh6iDK2EHfMjWIpZGi9zU/yEpTezVN9GpBRklXWQdaXDqN2jJNwc4bS7F527l8SaETa6R+WYsniIuLJBDl3tY9OFx8w/egfBUqhTK9mk9RCd5WPbxbtsL3zIzsvPiC/vZrdniAO+YQ43fpRF6MK3q7ybWOdz9jgek2R/wHaDn81aD4KlkCx55BaZMZUUYb7ixHKtDLuniuK6ahz+WkoafZQ2B2QRuvAV11fLOSJX1IhawRCs3+XeUrWxxT70AAAAAElFTkSuQmCC" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="Git & GitHub Masterclass: The Practical Bootcamp"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/6328c347787cb4e21d9af0f8323924edeecb7e97-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="Git & GitHub Masterclass: The Practical Bootcamp"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">Workflow</span><div class="text-3-regular text-neutral-12">Git & GitHub Masterclass: The Practical Bootcamp</div></div></div></div></a><a href="/premium/courses/web-development-foundation-learn-html5-css3-bootstrap-3221/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADAUlEQVQokX2RfUzMcRzH73/zOI2FqGPpwVJWYbJhook85aklK4q5eShsdNX1QOmUFOlc1+l+q+53R925MsPRsnWnFFeNU2LDMQ9bmOnPl/1u8zDMH9/ts+/3/X593t/PRzZ2Sz0Tdor47LXhm2nHT+kgoNhFYOUzQmvfENE0QlTLKJHNo4Q3jhCq9RB4bgh5sQu/HIfXI3klhsSS/QmU5zpYoO5l5YU+ttb1k9rkZqPlAwubvxH2G1BqKjX3/RdwYrKIT4YN3yw70YX3OHy2DW2VQNtFDTd0OvLFLmJbPhNp/MR8nYegyiFm/z+hEZ+91/DNusOyQju1Z7Q8rSzg46U8XmkLEBpspFg9xIlvWX75BYs1Q4SX9yHPc/4NHJdoYErSFWbuvsGMw+1EqdopU9czWF3MZ0MJ74VSrjdd4aBpgMT6AZIbH5MkDhKr6Se40On9lQSc+AM4faOJmA0dxG92EZHeTUhOJwfUFpwVpXzUqHinL+Zmo8hBoZukuh6y29wcv/WCtbp+ggocTMv6I2HIOht7Vrs5tuYtq3c+Zu6JLhLU7egr9HRWncFep6Pa3EG68JA0oZfTd5+Tf/clqy71Mzvv1wx/JvRff5WE+B6SNw2yJL0XefZ9wkt72FrdhULnJMP4hBSLh5QmNwqxD9Xt5yhswyypcjEr14Fflp2wA60sSDcxbYcB2aREgYDt1whKsxNwqJ1ZSod3g6FVQ0TUeYg2jhBr/cK2Zg+7xKekXh1kg+AmouwRM3McBB61s+NYK4pDZqJSBGRjEusZnywyOcPG1Ew7M5QO/E+5mFPxjGDtG8IaPrGwZZQV1q/Emd+zquGld8tzT/cxXelEfuQOazJb2bbfREiSAVlwag3z9ukJzzQSmW1lUdFNYso6WFbdTax+gDjjMPGW16yzvibBPEy8YYCVNQ9YWn7Pq41WWok5aiRGoWd+Wg2yE0UqlCVF5JaXkn++gkLNBU7ptZQ0XEZtaqTMYuZsa4v3SLV0J71JGkkreSRvdslJjhep+A74lmGQ97aYXwAAAABJRU5ErkJggg==" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="Web Development Foundation: Learn HTML5, CSS3 & Bootstrap"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/9f2df951ab770fc80e34b0cc5c55f3f049e15135-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="Web Development Foundation: Learn HTML5, CSS3 & Bootstrap"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">HTML & CSS</span><div class="text-3-regular text-neutral-12">Web Development Foundation: Learn HTML5, CSS3 & Bootstrap</div></div><div class="self-start min-w-fit flex items-center py-0.5"><span class="text-2-regular text-neutral-12">5.0</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M9.99921 14.396L6.54088 16.4793C6.3881 16.5765 6.22838 16.6182 6.06171 16.6043C5.89504 16.5904 5.74921 16.5349 5.62421 16.4376C5.49921 16.3404 5.40199 16.2189 5.33254 16.0731C5.2631 15.9272 5.24921 15.764 5.29088 15.5835L6.20754 11.646L3.14504 9.00014C3.00615 8.87514 2.91935 8.73278 2.88463 8.57306C2.8499 8.41334 2.86032 8.25709 2.91588 8.10431C2.97143 7.95153 3.05476 7.82653 3.16588 7.72931C3.27699 7.63209 3.42976 7.56959 3.62421 7.54181L7.66587 7.18764L9.22838 3.47931C9.29782 3.31264 9.40546 3.18764 9.55129 3.10431C9.69713 3.02098 9.84643 2.97931 9.99921 2.97931C10.152 2.97931 10.3013 3.02098 10.4471 3.10431C10.593 3.18764 10.7006 3.31264 10.77 3.47931L12.3325 7.18764L16.3742 7.54181C16.5687 7.56959 16.7214 7.63209 16.8325 7.72931C16.9437 7.82653 17.027 7.95153 17.0825 8.10431C17.1381 8.25709 17.1485 8.41334 17.1138 8.57306C17.0791 8.73278 16.9923 8.87514 16.8534 9.00014L13.7909 11.646L14.7075 15.5835C14.7492 15.764 14.7353 15.9272 14.6659 16.0731C14.5964 16.2189 14.4992 16.3404 14.3742 16.4376C14.2492 16.5349 14.1034 16.5904 13.9367 16.6043C13.77 16.6182 13.6103 16.5765 13.4575 16.4793L9.99921 14.396Z" fill="#1C2024"></path></svg></div></div></div></a><a href="/premium/courses/python-data-structures-and-algorithms-the-complete-bootcamp-3205/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADT0lEQVQokVXSW0wbBBjF8T4b521b5hwXgY0CBcq24lwIZig4p4sasmXMy2SaYvCyUJkkW6FQWtpyGaUMDLAGoUChF7aytsgYLRdpiwSBujGgojG1uBedyx7k8W8sxsSH7/WXc/IdwZ53TSSU2Nhf5ib+4gRxch+JdUsIW0KIuiJkDTxAMryF5PoWWeaHpBs3ERp+JEkTJL4qQPyXXpJk35BUep2dRb0IJBfsnNNPUdTqJ71q+n9g1rVfedn6O4Wjj3jL/Yhcyx9kGiPboDbIgZo5xNUzZFdOcLDcSewHAwiOy53obEvILT+QrZol9l8wozVEoSVCpec+Wm8YtSdM2dgm+X1hUg0h9muDiNTzvKDy8aLCg1jmJP68GcHhz+2ca5neTlg5/R+Y1xWidjxMpzeEwhygaXgGe2CRCtcah9vWognTVPMcUfuQyCd4/uNhnikyIdh1tpf4EjsJF9zEfDFBzGUfydolTvWu0zC6impwkoqOfozWNoIL3fRMfUte5z0SNEGSlXNIamejYKzUzuOnvkbwWGE3O94xs1PqYJ/sNnFyP0LtEqd712hwBTGODDE+pmBjTsb9u430T3l4pXOFBM0yidUBUuXTpFwcY++HVnb8A+4+a2JPsYXnPnGScmmSDPV3CHXL5Het0jS+yvzSCH+uVrO1Ucfqygi1rkWOtN0jMfplPzHlHp4tdfL0+0PbCTM/tSGW3SSj4hY5dT5ymxdJrQ8ibl3jvG0Dk28B/7KTycXbNHvv8mbfBmmG9SgYV+lnr2yCXSUjPPne4DYoKrWSc2mUPNUk+Y0BXmr+nrSGIEL9OtnGX3jbFkbqDlPsinB8aJODxjAphhDJuu3ZJFZ4if3Mxe5iC0+cjlbu41C5i1zlJIeUs4hU89FJHNCHSOuKIO5/QPbwX9ETDzxEZPyNlNYNRI13EGsWSK+aQVh+i1jpME+dMSHI/KiD1+VDvFHrIEdxk6OqMXKbpjnWPk9B9x1ODP3EyRsRTjo2OWH5mYKeFfI7Fni11cdrVzwUqN0ck9s5WmYiS9qJQK6uQavXobl6hZqrepQd7ai7u9D291BvMdN0w0azy4HePUKTw06DdRDdQC+6HiOaa1+hbjegbGlEUV/HZbWSvwEyCGnOphxejAAAAABJRU5ErkJggg==" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,693,442&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,693,442&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,692,442&w=750&h=479&auto=format 750w" alt="Python Data Structures and Algorithms: The Complete Bootcamp"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,693,442&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,693,442&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/0187dfb3c1822dca5339c0bbaa45fed6c037d7db-750x442.png?rect=29,0,692,442&w=750&h=479&auto=format 750w" alt="Python Data Structures and Algorithms: The Complete Bootcamp"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">Python</span><div class="text-3-regular text-neutral-12">Python Data Structures and Algorithms: The Complete Bootcamp</div></div></div></div></a><a href="/premium/courses/python-a-z-learn-python-by-building-15-projects-3204/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADaElEQVQokR2Sa1DTBQDA/5+7Ss4uK09AeU6cgG50Zg+RI9IgLYQUaWEHV3JdBwUeMJnAxh485h48DnBsELCNR7AGW2lIvAYcMzYoNF51XaJ+sj7k9aEPv04+/L7+PvzuJzx7zspumZ29hS5Cv/qBsKs+ItQBYo3riDvuc9T+mOOuf3eQOP7msGUbkWmDSO0y4ZVziCsnSdNM8nqFl5dyexB2ZVuJL+wlo7KflOoxRFWzRKiDxBjXSbTcJ9X5iHPfPCRz6AEpjkckdm4Ta9ogQrNMxLU5MvTTGF0/UevwIykaRnjhQyunSrspa7BS0DCIRDVNpCaIyLjGa5bfye5Z46P2ebLMk2TZAqR+vUl88/qOMKpqng+Ms7S6/egcC7xaPIywJ6eLtCt9XNb1kaVxcbhmhihNEIlpldTWIFlNM2Rq3byvdCDvdlI75iHD6idKGyRcMc+RqknStbdJlo+xV9aLkFDYT67aS07dLSSKcfZX+hBpA5wwBTjTOE7e9QGKm6xUt5u56VWw4KuhuN/LwboAoZVzhF0ZJ7x4lJcLnDyXbUNILhmmpGmCS4YZ4uST7JP7OKgLkGJe4uOm72hyNuObKOOu7wse+vNZmiujyOHZEe67OkeE4hYJuhFEcju7c20IMfl23il3kVY2hLhoiP3lPxKtDXDMvMon3T5GJwz884uM/+7lcfeOApO3j9OWRWLrlhEpF0iqH+fkjRGkOjsv5nUhPJ9lI1Rm4WiuiiSZlpgSN5HqAHGmdd7tuUfbxCBbyxVsrSixTLk5a1/lkHmNBP0KFzqWuGzzkaL3cOBLByE5NoSnH+652EFcror4S/VEl44RqV7a+VDa+Qeyb39FNz2PbmYRmXsTqe1PYowbSA0rFPUFUQ34SdfdJuzTQXY9bfhMpo2Qiz28kt9D6OdDhJVPcUAdJNqwzqGObaSOx5xwPyHZ/YQk51+ILQ+IMW0iql/hLb2fTPMCZ6/PIikdJeR8N4IorxXxZ50kFtuRVoxwTPU9bzROkdyySKr1Z045tkgf2Sbdtc3p/t94u2uVk613eFM/zfHam6SqPVzQe3jvWj/xBW0I5coq5NpaFI11VJkNKNtaqLV2oO3tom7ATuPIIIYxFwaPC71riPoBB9rebtS2GyjbW6hpNqIyN1LdoKFCVc3/ciNle5B1MDAAAAAASUVORK5CYII=" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,693,442&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,693,442&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,692,442&w=750&h=479&auto=format 750w" alt="Python A-Z: Learn Python By Building 15 Projects"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,692,442&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,693,442&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,693,442&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/3e6a2b5f3d68f786684eabc5ac8f1dbec8fc8335-750x442.png?rect=29,0,692,442&w=750&h=479&auto=format 750w" alt="Python A-Z: Learn Python By Building 15 Projects"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">Python</span><div class="text-3-regular text-neutral-12">Python A-Z: Learn Python By Building 15 Projects</div></div></div></div></a><a href="/premium/courses/react-js-masterclass-zero-to-job-ready-with-10-projects-3203/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADVElEQVQokT2SbVATBByH97W84rwjO6AwiJhbW9BZEcFZkYqKeOlRAXXKNd4OCo55URiMcMg2BgxQ3tY2GToGLLZBYPFiZSLLkxPGkWFOQUDQKxz0An57OofXh+fu/+m53/1+f8GmQ0b8Ui08lekkqGCI4GMjhJRfJbxmGnHLPBFnltn+zRqv2NeJtK4gMSwirL/B8yo3wcUuggoGCEy3siXFgF+SAcFDYcCRdt4utvO+boCYylHCKsZ9wpf080RZl3nDsUZMzwNe71ohwrTItv+Fo4R+YkP6XgnSffkEHahA8PhBI6LsdpT60zjOtZJj/hFxpdsnjDu7QPqQl5yRNXJG1sn8YZWd1iVE9TcIVbnZWjyKMKeNmAOZxMZ9QFhCEQL/ZDPRR7s5YTTT5tQjMw4h0kwgqbtOWu8iX0+tYL35tw/DtVU+7r9LZINnQ1gySkheNy8mKxElFhL4rhZBdL6drNqLZDWcJ0HTR6TyAkLVOLtMHo5fukf3LS+9c1565rzYZ7yUu/4gvm2GcM3kow4HCcjoxD/VxJNJRgQ7C3v5rPkymc1j7FC72Fb2C5LKCdIds1h+u++Ttd9a9tFz24tl+j4ZPXNIqiZ5tthFoHwY/6xe/D7qYFNSK4Kth88SW9iPrPkKcts08Y2TSCsnSOmcocX9J85ZL7bZZR+OWS/N7mVSbbcRazeEAfJhgrMdSNNMSJIbN0Z5+kgHe9Q/k2u9RnyDm3DVOFFNvyMfvkuXZ4W++VUfD2/5+XtE628S9qjDZ+SDROVayM6pIVdWsfE2mz+0EJrXx8ulFxCVuQgtv4q4dppDtjuornipm/qH2ql/UY2tkmRfQnJyY+WQkktIC78l8aiJ7E91pMm0CB47aOSJFAub051syRskqGiE55TjvKC7zqumBfY6vCR+v07iwAP29f7Fa+YlhPUeQiomfQkji86x+1gXcfJ2pDIzAuHhBsQZBiLyLWz/wk5U2XfEVP7Em6cu845xkj1WDwn2BfY777C3c4Zdrb/yVtMYsdUXiS4fJFbhZLeii/2KDnYUtCL4vKyUohNKvtRqUNTp+KrpFEqjnoozrag7LWgdNqr7nNT091Dl7EbTZUVlMVN+2kBZSyOKk7WU6qo4Xq2mVK3kP7S4c1RneuyCAAAAAElFTkSuQmCC" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="React JS Masterclass: Zero To Job Ready With 10 Projects"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1849,1179&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1849,1179&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1848,1179&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1846,1179&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=76,0,1848,1179&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1846,1179&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/735badd0f16bc2e4932723146756f9ae4e350d56-2000x1179.png?rect=77,0,1847,1179&w=2000&h=1277&auto=format 2000w" alt="React JS Masterclass: Zero To Job Ready With 10 Projects"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">JavaScript</span><div class="text-3-regular text-neutral-12">React JS Masterclass: Zero To Job Ready With 10 Projects</div></div><div class="self-start min-w-fit flex items-center py-0.5"><span class="text-2-regular text-neutral-12">4.5</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M9.99921 14.396L6.54088 16.4793C6.3881 16.5765 6.22838 16.6182 6.06171 16.6043C5.89504 16.5904 5.74921 16.5349 5.62421 16.4376C5.49921 16.3404 5.40199 16.2189 5.33254 16.0731C5.2631 15.9272 5.24921 15.764 5.29088 15.5835L6.20754 11.646L3.14504 9.00014C3.00615 8.87514 2.91935 8.73278 2.88463 8.57306C2.8499 8.41334 2.86032 8.25709 2.91588 8.10431C2.97143 7.95153 3.05476 7.82653 3.16588 7.72931C3.27699 7.63209 3.42976 7.56959 3.62421 7.54181L7.66587 7.18764L9.22838 3.47931C9.29782 3.31264 9.40546 3.18764 9.55129 3.10431C9.69713 3.02098 9.84643 2.97931 9.99921 2.97931C10.152 2.97931 10.3013 3.02098 10.4471 3.10431C10.593 3.18764 10.7006 3.31264 10.77 3.47931L12.3325 7.18764L16.3742 7.54181C16.5687 7.56959 16.7214 7.63209 16.8325 7.72931C16.9437 7.82653 17.027 7.95153 17.0825 8.10431C17.1381 8.25709 17.1485 8.41334 17.1138 8.57306C17.0791 8.73278 16.9923 8.87514 16.8534 9.00014L13.7909 11.646L14.7075 15.5835C14.7492 15.764 14.7353 15.9272 14.6659 16.0731C14.5964 16.2189 14.4992 16.3404 14.3742 16.4376C14.2492 16.5349 14.1034 16.5904 13.9367 16.6043C13.77 16.6182 13.6103 16.5765 13.4575 16.4793L9.99921 14.396Z" fill="#1C2024"></path></svg></div></div></div></a><a href="/premium/courses/a-complete-guide-to-learning-chatgpt-4-midjourney-dall-e-2-and-ai-3202/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAAC60lEQVQokYWRXWhTdxiH/0nbtGmM+TgnJz05OU3bfLVJCW1aV20SF9uY1n6katO1s3M62rQyy5hTWe2YIAxBRG9Wx8AhTjcF9UYHs40WtOrFhDGYN9vF1jHYLmQb67Z6+4zkerCLB3688P6eF14hZouI2Xv/QxHj1DJV++5SuX8Jw0xpp4hhqliemUdvUz1+B+PUEkIUVhHTTxAzq4jZlf8unLmHKb+Eo+sLrMllKsYfYnz9LuahT3F0nsXdfAq5fZGabKlw6nvE/h8Rb3yHePMphrkHVB1ewXT4fpnquRVqpovYe2/g1a/hrr+Ptfsxm9OXkMMF3PIOVFuKOmcBm3YZIeb+xHhwncrp36k8+jO1C89wLTxFnX+M+u4q2vwjfIduE+w5RSR8glDTFQKR64TC79DoTuB1BvBIjbjtXTg3TyDEwgaW4xt439/Af/YvWhafE7+wRvz8M9rOfE389FdsO/I56T0F0uk8ie63SW05Rk/nJIlYL12xbtqi7fh0P5KkI8QH/+A4s0HHxy/IfvaCoRt/k7v5BwPXfiV7+Seyi9+w+8RFxg8UyOfHGMlNsHf4NV7de5Cx3DhjA4MMbk/QHGhCkp0Iw/wPWE7+QuD8b7z0yTrJq+skrzwncXGN5IffknrvFpnJI/T3jZDt6aevdxeDO3Pk+kcZzoyQS75Mpi2KX9OQJBlRmzmHpe8S9lduIR8q4jr+BOWtL1EnP6J++CQN2/bh928hqEUJeloJazEiWpyI1knU00FUbSWoNKJKdUhOGaG4tqIovbj0AaSWMeydB3DE8rh8KeqUOB57BM0SRDe3UF/Tiq86RoOpvUwp6+YInk1NKHYPslNBaLUBSqjW0qd0XLKOS9JQbB5Uaz1eSxBfTQx/VRfBihShijRhY4ZQRQ+BygSNpo6yTLU2oNg0hG6OollCKDYvktOF5JTKp5ey7Kgri3zVbQSN22kW/UREjqgYJSJ202zoK0saTHG8tWFUq49/AerAliH7B1QQAAAAAElFTkSuQmCC" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=148,0,2246,1432&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=148,0,2246,1432&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=149,0,2244,1432&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2242,1432&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=149,0,2244,1432&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=149,0,2244,1432&w=2048&h=1307&auto=format 2048w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=2542&h=1623&auto=format 2542w" alt="A Complete Guide to Learning ChatGPT 4, Midjourney, DALL-E 2, and AI"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=148,0,2246,1432&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=148,0,2246,1432&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=149,0,2244,1432&w=768&h=490&auto=format 768w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2242,1432&w=1024&h=654&auto=format 1024w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=1366&h=872&auto=format 1366w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=149,0,2244,1432&w=1600&h=1021&auto=format 1600w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=1920&h=1226&auto=format 1920w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=149,0,2244,1432&w=2048&h=1307&auto=format 2048w,https://cdn.sanity.io/images/708bnrs8/production/3d6cce07790cc8e536ede8183cfa8e3c175e1c3f-2542x1432.png?rect=150,0,2243,1432&w=2542&h=1623&auto=format 2542w" alt="A Complete Guide to Learning ChatGPT 4, Midjourney, DALL-E 2, and AI"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">Workflow</span><div class="text-3-regular text-neutral-12">A Complete Guide to Learning ChatGPT 4, Midjourney, DALL-E 2, and AI</div></div><div class="self-start min-w-fit flex items-center py-0.5"><span class="text-2-regular text-neutral-12">3.8</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M9.99921 14.396L6.54088 16.4793C6.3881 16.5765 6.22838 16.6182 6.06171 16.6043C5.89504 16.5904 5.74921 16.5349 5.62421 16.4376C5.49921 16.3404 5.40199 16.2189 5.33254 16.0731C5.2631 15.9272 5.24921 15.764 5.29088 15.5835L6.20754 11.646L3.14504 9.00014C3.00615 8.87514 2.91935 8.73278 2.88463 8.57306C2.8499 8.41334 2.86032 8.25709 2.91588 8.10431C2.97143 7.95153 3.05476 7.82653 3.16588 7.72931C3.27699 7.63209 3.42976 7.56959 3.62421 7.54181L7.66587 7.18764L9.22838 3.47931C9.29782 3.31264 9.40546 3.18764 9.55129 3.10431C9.69713 3.02098 9.84643 2.97931 9.99921 2.97931C10.152 2.97931 10.3013 3.02098 10.4471 3.10431C10.593 3.18764 10.7006 3.31264 10.77 3.47931L12.3325 7.18764L16.3742 7.54181C16.5687 7.56959 16.7214 7.63209 16.8325 7.72931C16.9437 7.82653 17.027 7.95153 17.0825 8.10431C17.1381 8.25709 17.1485 8.41334 17.1138 8.57306C17.0791 8.73278 16.9923 8.87514 16.8534 9.00014L13.7909 11.646L14.7075 15.5835C14.7492 15.764 14.7353 15.9272 14.6659 16.0731C14.5964 16.2189 14.4992 16.3404 14.3742 16.4376C14.2492 16.5349 14.1034 16.5904 13.9367 16.6043C13.77 16.6182 13.6103 16.5765 13.4575 16.4793L9.99921 14.396Z" fill="#1C2024"></path></svg></div></div></div></a><a href="/premium/courses/advanced-react-with-typescript-3201/" class=""><div class="flex flex-col cursor-pointer hover:opacity-80"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained w-[282px] mb-2 sm:max-w-full"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='180'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMEBQYH/8QAIhAAAgICAgAHAAAAAAAAAAAAAQIDBAAFESEGEhMxQVFh/8QAFgEBAQEAAAAAAAAAAAAAAAAABQME/8QAGxEAAgMAAwAAAAAAAAAAAAAAAQIABBEDFCH/2gAMAwEAAhEDEQA/AMF4B0se/wBZ6gBLhiOPNwMTf1lWIbgyXlgeieFhbsufrOcanf7PV1xHQtyQoTyQp+cTPdsW5ZZbErvI/bMT7n9x3uMUAByHLWVXLN6JLtWzJMzMezhlI8jFjycMyG0xOy44hk//2Q==" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,692,442&w=282&h=180&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,692,442&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,693,442&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,693,442&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,692,442&w=750&h=479&auto=format 750w" alt="Advanced React with TypeScript"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,692,442&w=282&h=180&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,692,442&w=282&h=180&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,693,442&w=320&h=204&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,693,442&w=654&h=417&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/e3b9af0c05a1b88a96a90097022495f26287cbe4-750x442.jpg?rect=29,0,692,442&w=750&h=479&auto=format 750w" alt="Advanced React with TypeScript"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex space-between"><div class="flex flex-col gap-1"><span class="text-3-medium text-neutral-12 flex gap-0.5">JavaScript</span><div class="text-3-regular text-neutral-12">Advanced React with TypeScript</div></div><div class="self-start min-w-fit flex items-center py-0.5"><span class="text-2-regular text-neutral-12">4.7</span><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M9.99921 14.396L6.54088 16.4793C6.3881 16.5765 6.22838 16.6182 6.06171 16.6043C5.89504 16.5904 5.74921 16.5349 5.62421 16.4376C5.49921 16.3404 5.40199 16.2189 5.33254 16.0731C5.2631 15.9272 5.24921 15.764 5.29088 15.5835L6.20754 11.646L3.14504 9.00014C3.00615 8.87514 2.91935 8.73278 2.88463 8.57306C2.8499 8.41334 2.86032 8.25709 2.91588 8.10431C2.97143 7.95153 3.05476 7.82653 3.16588 7.72931C3.27699 7.63209 3.42976 7.56959 3.62421 7.54181L7.66587 7.18764L9.22838 3.47931C9.29782 3.31264 9.40546 3.18764 9.55129 3.10431C9.69713 3.02098 9.84643 2.97931 9.99921 2.97931C10.152 2.97931 10.3013 3.02098 10.4471 3.10431C10.593 3.18764 10.7006 3.31264 10.77 3.47931L12.3325 7.18764L16.3742 7.54181C16.5687 7.56959 16.7214 7.63209 16.8325 7.72931C16.9437 7.82653 17.027 7.95153 17.0825 8.10431C17.1381 8.25709 17.1485 8.41334 17.1138 8.57306C17.0791 8.73278 16.9923 8.87514 16.8534 9.00014L13.7909 11.646L14.7075 15.5835C14.7492 15.764 14.7353 15.9272 14.6659 16.0731C14.5964 16.2189 14.4992 16.3404 14.3742 16.4376C14.2492 16.5349 14.1034 16.5904 13.9367 16.6043C13.77 16.6182 13.6103 16.5765 13.4575 16.4793L9.99921 14.396Z" fill="#1C2024"></path></svg></div></div></div></a></div><div class="flex justify-center"><a id="home-browse-premium-library" href="/premium/library/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent text-primary-12 px-5 py-3 rounded-lg text-3 bg-primary-alpha-3 hover:bg-primary-alpha-4 focus-visible:bg-primary-alpha-4 w-full sm:w-auto">Browse Premium Library</a></div></div><div class="pt-8 pb-16 px-5 sm:pt-10 container-12 sm:pt-10 sm:pb-[80px]"><div class="mb-2 text-5-bold text-neutral-12 sm:text-7-bold sm:mb-4 sm:text-center">For all learning paths</div><p class="mb-8 text-3-regular text-neutral-11 sm:mb-10 sm:text-center">Whether you’re a full-stack developer, designer, or looking to get into AI, we’ve got a path for you.</p><div class="pb-8 flex gap-6 overflow-auto lg:grid lg:grid-cols-4 sm:pb-10 items-stretch"><a href="/premium/paths/full-stack-javascript-developer/" class=""><div class="h-full flex flex-col rounded-lg border-[1px] border-neutral-alpha-5 shadow-2 hover:opacity-[0.82] hover:shadow-1 cursor-pointer"><div class="min-w-[282px] mb-2 rounded-t-lg lg:min-w-full h-[163px]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-t-lg"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='163'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAAC50lEQVQokXWSW08bVxSF599BHM+ZOSMD5laUUIlSQ4xnIMYxdxzfDcYyMMbBOMXcUwJVkpZIadoKJWqC3YarzV+p+FQZCG95WNra++HTWltL6W86ujLbK1gdFXxtZbzu8vUc/K7CYOfN3eyoMNBaps91hMf4xCPjA6bxO8PGK0blDtPyOVFpk9TTKFZnhdDACYnAGdGhUyb7j+/2mZFzUsFzEsNnTPYdY7Z+wmscYhnvbmHbTMsiUbnIjJ4io4dR6g7C5inZ6SrzoSrpsQvSY+fXey5aYyl+iR2tkhr+QqDjkCF5QFC+ZEKu81Q+I6FnSGtR5sU4OeFHGXCXmfaekA1VsaO1Oy1GauRiNQqpGsuxM+b8fzPZ+RujxteIiyS1FGkxhS2fUHRZlAwPSv1/9ag3gEuWEpfXIDtSJR+7oJg8ZSVSxg78Sbr3F2a61kg1LZDSIsw6g2SdPtY7Bzjw+njzsBtlqOsfkk/Or13VQfl4DTt8gR06ZSX+hbXkEVupj2zH37M59YpVq4TdniDtfEzmXi95Zzc7P/p4G5vktdl743DCc0zEOiVinRAf+pek9ZlZ85Cs9Y6c9Zqif4+14S3WrQKlnlmeNQVYcPRgN7Sz7GjB/sFiLprFNgMo9Sp4W47wuT9juT/gd//BiPtXpty7hJtLJJrzzDVnWGiOkXeNs2IMUhQ9FBxtFBo0Co1Okg8eEBwJkvB4UOq96jM+4pV/MSjfEpD7jOkbhPRlYnqWWS1OVkyQE49ZEf2URDebahvrDp1So4PnjQ1kWlXC/c1kHxoo9V6Zxnv8xhtGjRdMyVUiMkdKn73u1aI2wrJm8pPoZUN08UK0sKtKdp2Cnfv32XTcY1V3UGxxsuFyogwZB1cBY59xuUlIFojXXekJstokS5qfFfGIkvieLdHOz8LFnqqzrwr2VZU9VeXlrfaEyr4QKEG5+9+43Lh6KpdvYXHmtYlbWD9roptt0cauarCnanewb+l/0XxhfMHoSXEAAAAASUVORK5CYII=" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Full Stack JavaScript Developer"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/d6f315a4e461293667850794413bd5c95ee8488c-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Full Stack JavaScript Developer"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div class="flex flex-col p-5 pt-4 "><div class="text-3-medium text-neutral-12 mb-4">Learning Path</div><div class="text-3-regular text-neutral-12 mb-8">Full Stack JavaScript Developer</div><div class="flex gap-1"><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">Beginner</div><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">4 steps</div></div></div></div></a><a href="/premium/paths/web-development-basics/" class=""><div class="h-full flex flex-col rounded-lg border-[1px] border-neutral-alpha-5 shadow-2 hover:opacity-[0.82] hover:shadow-1 cursor-pointer"><div class="min-w-[282px] mb-2 rounded-t-lg lg:min-w-full h-[163px]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-t-lg"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='163'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAADEElEQVQokW2S209bBRzHz4BC7z3tKXjJiA/T+OCID/iwdHsguokmOrVjbIaHEbOH6Vyim2YkQ2QqRVouLae055Se0/V+pdAOxloIcZWVJfuTDJ8YYRpjfPi+/B4++fySj7DdefHwsfkSTfEKTdfnNGxX2Ooa4eGJUeodY9Q6x1nvuk6160vWDLeodN+m1H2XYs89CsZp8qYZsiY/GfMiacsyQsMywpPTNzl47x4Hwz/SGvyObXGc2okxNjqusd5xnbXOG1S6blE2/A2bpGC8T97kI2v2k7EskbaGSVmjCA3HKPue73l+eY7nVxd4Ouyj+fpttnq/ZuvVO2ydnGCzf5J6/zS1/l+ovuKj6PCRtcySsvrRbfNothCaPUrCriE0XWPsn53g2Wd+nnkXOfAGaV0I8NtQgNaHYVoXVVpenSfeJHsfJdn2xCmdDJGwB1DtflYc80RcQRR3FFXSEBq9X/D7uSkOPlmg/WmI9uUoTy8ptD5W2DsfYWdIYfd9nZ3hFI+HUtTe1ki/vIwiziM7F5BdIRKvRakMaKRO6QjbfTdoDc3Q9sq0RxXaV+Psj2jsXVCovxGgLPkouf0Ue5couGXSrjAxMUTYGSTklJHdKpmBHJsfbJB/p4zwUPyK5ltT7J6ZY9ezyM7ZZRpnZDYHQlT65siZZskYA6RNQVLmFXRbFEWMsCKpyFIcuTdNdPARqrdN5NweQrXnJuvWb6k67rImTlJxTlN2zlAUfyVnDZCx/JWDTMqqkLTF0RwJIs44IUkjKCUI9WVQPTUS402U8zWEiuEbyoY7FA0TFLp/IN9zn5zRR9YUIGMOkrKskLTGeGDTSdjTaI48EVeWoJRkwZ1k6aUUKU+SzWs62XdVhP9GmjPP/csqStIaJ2F7gG7PojlKxMU1VNcaYanIkjvDojuJckonPbiK9qaOUDBOHeaNP5E7ivTYKn1kpf5jpdvzxB0VVsV1VsUaMWcd1bXBilRBlgpHi7hLKFIVIW/6+Y+cafYwa57/3xd1e+EFbINVsU7sxVad9SNwzFU7nvP49idYQCvNmDDrewAAAABJRU5ErkJggg==" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Web Development Basics"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/699da1a83858c0412585a95a7371bf40ca1c48eb-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Web Development Basics"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div class="flex flex-col p-5 pt-4 "><div class="text-3-medium text-neutral-12 mb-4">Learning Path</div><div class="text-3-regular text-neutral-12 mb-8">Web Development Basics</div><div class="flex gap-1"><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">Beginner</div><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">2 steps</div></div></div></div></a><a href="/premium/paths/pro-dev-workflow/" class=""><div class="h-full flex flex-col rounded-lg border-[1px] border-neutral-alpha-5 shadow-2 hover:opacity-[0.82] hover:shadow-1 cursor-pointer"><div class="min-w-[282px] mb-2 rounded-t-lg lg:min-w-full h-[163px]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-t-lg"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='163'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAACKUlEQVQokW1Tx27bQBTkbznMQTaswoAS1Xu3VaxCipREqkPdhg1DsA4B9K2BB8GssAmQ+PAOu9g3b97MrBIMBj91XUc0GoVhGAiHw+A5EomIM+9ZsVgMyWQS2WwWpVIJtVoNzWYTnU4HpmliOBzCdV0obGq325jNZphOpxgMBuj1ehiPx/A8D47joNFoIJPJIJ1Oo1AooFKp4PHxUfT1+33Yti3A2K/E43FYloX9fo/n52esVisBLs+bzUYMIYhkJsE42LZtMZxgy+XiypC0l8sl1uu1KIIQ8Hg8ivNkMhFDOIyNZNXtdsWqjuPA9aaYLtZYrbdQqBUZsPlwOODl5QWn0wnv7+94fX0V92R6Pp9xuVzw9vaG0Wgk2LFM04I12cHe/oS7PUEJhULI5/NCJ5bUhTKwpD7z+VywXSwWghXf9HpdmNYAT+Mdqu4HavYOit/vRyAQQDAYhKZpwmU6mkqlkMvlUC6X8fDwgFarJdaUg8huYFlwPQ8t04GeqyEUS0O5v7+HBCUgJaBRdJWOVqvV/xwlQ4IyKpPZFO2JCb2bxW1K+8vwK7Cv4kFHaZLruRg6Q/QtE1XvCdFFHXfVCBQJJldl1qgpwbiqjAeNk/Gg29SSd9zAyCVwl/oBVbuFomma+Cn/6lav1//oxkY6e83aNV6MEeNGAv6AH+p3FTffbqDouv7LMIzPRCIhvlWxWBThpePyW1Ez/hrpNItsOZQy+Xw+qKoq6jcokA/4e0yS3gAAAABJRU5ErkJggg==" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Pro Dev Workflow"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/707ea9ca1b9c2bc01beaaf6da8064718644964d4-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Pro Dev Workflow"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div class="flex flex-col p-5 pt-4 "><div class="text-3-medium text-neutral-12 mb-4">Learning Path</div><div class="text-3-regular text-neutral-12 mb-8">Pro Dev Workflow</div><div class="flex gap-1"><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">Intermediate</div><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">3 steps</div></div></div></div></a><a href="/premium/paths/build-beautiful-webpages/" class=""><div class="h-full flex flex-col rounded-lg border-[1px] border-neutral-alpha-5 shadow-2 hover:opacity-[0.82] hover:shadow-1 cursor-pointer"><div class="min-w-[282px] mb-2 rounded-t-lg lg:min-w-full h-[163px]"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained rounded-t-lg"><div style="max-width:282px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='163'%20width='282'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear" decoding="async" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAACmklEQVQokW2TS09TQRiGz386h9LTntOeovW6MjExcePORBONcaMLY2J0b4wuiC7cGDeYShCw3IpcWoqI9VIUSkt76B1saQvlpjwxMxVE4uLJZCaZd975vvdTKgV1r7ysUcy0UbJblG2NlaxGtaCyVvqX2mGKKvV8G41sO+sZFxtpA6WQbiM27SL8zmRqzGBq3GAm4mYupkvxelmlJviPWK2g0ci1s27rUqyZMlGySQfhUZP+HovgG4uBXotQ0MtM2I2dcLCa0yQ/8irV4iGXBY16zkHddrKedkuxzUUvSi7lkM6CvRYjQS+jAx7Ghj1Exgw+RNzMTrnlD77O6mQWHFTyGrViS6yWaWd1Xqca99CM+9me87ccToRM3gR8UnSwzyuFx4dNRgc9DPV7GX7rla4/z7hYEWUQdVt2Ukk4sd/r5EbOsDF4iZ3JCyj5pTb5vf2LAik4Ysq6TobMA/HZiEFh0SnFaimd/GcnC+905gIXSb68R7nveqsp0QmD3m4fPQEf3V0dvO7qoPe176Cmfd2W3E8MeVmOu6mndcpxnWS4nfmQQTRwhbfPO5nuuoMi4vEtphMdN2QthSPRJPGIQJxFRAJGPXyJmJS+G9QW3eRmXSTHdbKTFt8CVxl5+ITI09soa0WVHzkNkUVByW6t4iF5JnKZdrCaclJJumgsGTQSJoUPBsthg8q0n/yra8QePObro1soMgL7WTtCvaRSL2o08g7Ws06aGTebKZNmwmLtk8VK1KIaPYndc5OPnc9YeHEXZa2k7h2dBsmf4Ip4iCb8zZrF9kIHW/HjbHz005g+TSl0maW++5SHb0iHP2slde9/k3AwVraL5pLBZtLLVsLHzvdj7M6d4OeXU/yKnWV35hzb0Qvsvj/Pb2ycvvPv60CeAAAAAElFTkSuQmCC" alt=""/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" data-src="https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" data-srcset="https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Build Beautiful Webpages"/><noscript><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 282px) 282px, 100vw" decoding="async" loading="lazy" src="https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format" srcSet="https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=282&h=163&auto=format 282w,https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=320&h=185&auto=format 320w,https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=654&h=378&auto=format 654w,https://cdn.sanity.io/images/708bnrs8/production/878a3f9d4c52581e23b182e6875db2e013373ca7-704x405.png?rect=2,0,701,405&w=704&h=407&auto=format 704w" alt="Build Beautiful Webpages"/></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div></div><div class="flex flex-col p-5 pt-4 "><div class="text-3-medium text-neutral-12 mb-4">Learning Path</div><div class="text-3-regular text-neutral-12 mb-8">Build Beautiful Webpages</div><div class="flex gap-1"><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">Beginner</div><div class="rounded-full px-2 py-1 text-1-medium border-[1px] text-neutral-12">5 steps</div></div></div></div></a></div><div class="flex justify-center"><a id="home-browse-premium-library" href="/premium/library/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent text-primary-12 px-5 py-3 rounded-lg text-3 bg-primary-alpha-3 hover:bg-primary-alpha-4 focus-visible:bg-primary-alpha-4 w-full sm:w-auto">Browse Premium Library</a></div></div><div class="relative bg-primary-9 columns-1 py-16 sm:py-20 isolate"><svg xmlns="http://www.w3.org/2000/svg" width="23.5625rem" height="14.4375rem" fill="none" class="absolute overflow-hidden top-0 right-0 lg:hidden -z-10" viewBox="0 0 377 231"><path fill="url(#paint0_linear_1288_19153)" fill-opacity="0.15" d="M489.691-756.439a40.967 40.967 0 0135.552 0l373.71 179.969a40.97 40.97 0 0122.167 27.796l92.3 404.388a40.994 40.994 0 01-7.91 34.66L746.892 214.668a40.972 40.972 0 01-32.032 15.426H300.073a40.968 40.968 0 01-32.031-15.426L9.426-109.626a40.968 40.968 0 01-7.911-34.66l92.299-404.388a40.97 40.97 0 0122.166-27.796l373.711-179.969z"></path><defs><linearGradient id="paint0_linear_1288_19153" x1="507.467" x2="507.467" y1="-765" y2="281.933" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="8.3125rem" height="34rem" fill="none" class="absolute overflow-hidden top-0 right-0 lg:hidden -z-10" viewBox="0 0 133 544"><path fill="url(#paint0_linear_1288_19155)" fill-opacity="0.17" d="M490.112-442.764a40.976 40.976 0 0135.553 0l373.71 179.97a40.97 40.97 0 0122.167 27.796l92.298 404.387a40.996 40.996 0 01-7.91 34.661L747.314 528.344a40.972 40.972 0 01-32.032 15.426H300.495a40.972 40.972 0 01-32.032-15.426L9.848 204.05a40.97 40.97 0 01-7.911-34.661l92.299-404.387a40.97 40.97 0 0122.166-27.796l373.71-179.97z"></path><defs><linearGradient id="paint0_linear_1288_19155" x1="507.889" x2="507.889" y1="-451.324" y2="595.609" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="48.9375rem" height="22.375rem" fill="none" class="absolute overflow-hidden top-0 right-0 hidden lg:block -z-10" viewBox="0 0 783 358"><path fill="url(#paint0_linear_1288_13955)" fill-opacity="0.15" d="M489.691-629.439a40.967 40.967 0 0135.552 0l373.71 179.969a40.97 40.97 0 0122.167 27.796l92.3 404.388a40.996 40.996 0 01-7.91 34.66L746.892 341.668a40.972 40.972 0 01-32.032 15.426H300.073a40.968 40.968 0 01-32.031-15.426L9.426 17.375a40.97 40.97 0 01-7.911-34.661l92.299-404.388a40.97 40.97 0 0122.166-27.796l373.711-179.969z"></path><defs><linearGradient id="paint0_linear_1288_13955" x1="507.467" x2="507.467" y1="-638" y2="408.933" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="33.6875rem" height="33.625rem" fill="none" class="absolute overflow-hidden top-0 right-0 hidden lg:block -z-10" viewBox="0 0 539 538"><path fill="url(#paint0_linear_1288_13957)" fill-opacity="0.17" d="M490.112-315.764a40.976 40.976 0 0135.553 0l373.71 179.97a40.97 40.97 0 0122.167 27.796l92.298 404.387a40.996 40.996 0 01-7.91 34.661L747.314 655.344a40.972 40.972 0 01-32.032 15.426H300.495a40.972 40.972 0 01-32.032-15.426L9.848 331.05a40.97 40.97 0 01-7.911-34.661l92.299-404.387a40.97 40.97 0 0122.166-27.796l373.71-179.97z"></path><defs><linearGradient id="paint0_linear_1288_13957" x1="507.889" x2="507.889" y1="-324.324" y2="722.609" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><div class="container-12 lg:flex lg:justify-between mb-16 sm:mb-20"><div class="text-5-bold text-white mx-5 w-[220px] mb-16 sm:text-7-bold sm:w-[292px]">Content that inspires the web</div><div class="flex flex-col gap-4 px-5 sm:gap-8 lg:basis-[588px]"><div class="text-white text-5-regular sm:text-7-regular">“... I joined SitePoint to learn more about web stuff and their PHP/MySQL tutorial was probably the first I used.”</div><div class="flex gap-4 items-center"><div data-gatsby-image-wrapper="" style="width:36px;height:36px" class="gatsby-image-wrapper w-[36px] h-[36px] rounded-full mb-[10px]"><div aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:#080808;width:36px;height:36px;position:relative"></div><picture><source type="image/webp" data-srcset="/static/2a69191bdbacbbdb3c494a86fa5dd954/9a807/matt-mullenweg.webp 36w" sizes="36px"/><img data-gatsby-image-ssr="" layout="fixed" data-main-image="" style="opacity:0" sizes="36px" decoding="async" loading="lazy" data-src="/static/2a69191bdbacbbdb3c494a86fa5dd954/8ef0e/matt-mullenweg.png" data-srcset="/static/2a69191bdbacbbdb3c494a86fa5dd954/8ef0e/matt-mullenweg.png 36w" alt="Matt Mullenweg avatar"/></picture><noscript><picture><source type="image/webp" srcSet="/static/2a69191bdbacbbdb3c494a86fa5dd954/9a807/matt-mullenweg.webp 36w" sizes="36px"/><img data-gatsby-image-ssr="" layout="fixed" data-main-image="" style="opacity:0" sizes="36px" decoding="async" loading="lazy" src="/static/2a69191bdbacbbdb3c494a86fa5dd954/8ef0e/matt-mullenweg.png" srcSet="/static/2a69191bdbacbbdb3c494a86fa5dd954/8ef0e/matt-mullenweg.png 36w" alt="Matt Mullenweg avatar"/></picture></noscript><script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script></div><div class="flex flex-col gap-0.5"><div class="text-3-medium text-white">Matt Mullenweg</div><div class="text-2-regular text-white">Creator of WordPress, CEO of Automattic</div></div></div></div></div><!--$--><div class="flex justify-center"><div class="overflow-hidden"><div class="flex items-center -ml-16"><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div><div class="flex-initial pl-16"><div class="w-[115px] h-[64px]"></div></div></div></div></div><!--/$--></div><div class="pt-16 pb-8 px-5 container-12 sm:pt-20 sm:pb-10"><div class="mb-2 text-5-bold sm:text-7-bold sm:mb-4 sm:text-center">Keep up to date on current trends and technologies</div><p class="mb-8 text-3-regular text-neutral-11 sm:mb-10 sm:text-center ">Check out our latest articles!</p><nav aria-label="Category Menu" class="flex flex-wrap text-neutral-12 -mr-4 mb-8 sm:justify-center"><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/ai/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><g clip-path="url(#a)"><path fill="currentColor" d="m12.5 1.25-8.75 10h5.625L7.5 18.75l8.75-10h-5.625l1.875-7.5Z"></path></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h20v20H0z"></path></clipPath></defs></svg></span><span class="font-medium text-2">AI</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/javascript/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" fill-rule="evenodd" d="M13.996 16.324c-1.309 0-2.155-.624-2.567-1.44l1.147-.665c.303.494.695.856 1.39.856.584 0 .956-.292.956-.694 0-.606-.808-.843-1.379-1.088-1.017-.432-1.692-.976-1.692-2.124 0-1.057.805-1.863 2.065-1.863.895 0 1.54.312 2.003 1.128l-1.097.705c-.242-.433-.503-.604-.906-.604-.414 0-.675.261-.675.604 0 .423.261.594.866.855 1.267.543 2.225.97 2.225 2.367 0 1.268-.997 1.963-2.336 1.963ZM10.75 14.2c0 1.46-.9 2.232-2.148 2.232-1.128 0-1.804-.431-2.136-1.181H6.447l1.146-.802c.221.393.421.67.904.67.463 0 .753-.234.753-.938V9.25h1.5v4.95ZM2.5 17.5h15v-15h-15v15Z" clip-rule="evenodd"></path></svg></span><span class="font-medium text-2">JavaScript</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/computing/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="M1.666 17.5a.806.806 0 0 1-.593-.24.806.806 0 0 1-.24-.593c0-.236.08-.434.24-.594.16-.16.357-.24.593-.24h16.667c.236 0 .434.08.594.24.16.16.24.358.24.594s-.08.434-.24.593a.807.807 0 0 1-.594.24H1.666ZM3.333 15c-.458 0-.85-.163-1.177-.49a1.605 1.605 0 0 1-.49-1.177V4.167c0-.459.164-.851.49-1.177.326-.327.719-.49 1.177-.49h13.333c.459 0 .851.163 1.177.49.327.326.49.718.49 1.177v9.166c0 .459-.163.851-.49 1.177-.326.327-.718.49-1.177.49H3.333Zm0-1.667h13.333V4.167H3.333v9.166Z"></path></svg></span><span class="font-medium text-2">Computing</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/design-ux/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 2.5H7.5a2.5 2.5 0 0 0 0 5m2.5-5v5m0-5h2.5a2.5 2.5 0 0 1 0 5m-5 0H10m-2.5 0a2.5 2.5 0 1 0 0 5m2.5-5h2.5m-2.5 0v5m2.5-5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5Zm-2.5 5H7.5m2.5 0V15a2.5 2.5 0 1 1-2.5-2.5"></path></svg></span><span class="font-medium text-2">Design & UX</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/html-css/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" fill-rule="evenodd" d="M14.026 7.034H7.639l.152 1.481h6.083c-.09 1.298-.36 4.047-.458 5.298L10 14.775v.003l-.008.003-3.419-1.203-.234-2.84h1.676l.119 1.527 1.861.694H10l1.858-.666.191-2.296H6.265c-.028-.297-.388-4.154-.45-4.444h8.36c-.047.488-.094.99-.15 1.48ZM3.334 2.59l1.213 13.442 5.445 1.371 5.46-1.399L16.665 2.59H3.334Z" clip-rule="evenodd"></path></svg></span><span class="font-medium text-2">HTML & CSS</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/entrepreneur/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="M8.584 16.5c.625-1.264 1.458-2.108 2.5-2.531 1.041-.424 1.93-.636 2.666-.636.32 0 .632.028.938.084.305.055.604.125.896.208a7.366 7.366 0 0 0 .791-1.708c.195-.611.292-1.25.292-1.917 0-1.861-.646-3.437-1.938-4.73C13.438 3.98 11.861 3.334 10 3.334c-1.86 0-3.437.646-4.729 1.938C3.98 6.563 3.334 8.139 3.334 10c0 .624.08 1.221.24 1.79.159.57.399 1.098.718 1.584a9.017 9.017 0 0 1 1.77-.646 7.62 7.62 0 0 1 1.855-.229c.444 0 .872.038 1.281.115.41.076.816.177 1.219.302-.32.166-.622.36-.906.583a8.718 8.718 0 0 0-.802.708 2.658 2.658 0 0 0-.427-.041h-.365c-.444 0-.885.048-1.323.146a5.763 5.763 0 0 0-1.26.437c.444.444.94.816 1.49 1.115.548.298 1.135.51 1.76.635ZM10 18.333a8.115 8.115 0 0 1-3.25-.656 8.416 8.416 0 0 1-2.646-1.781 8.415 8.415 0 0 1-1.78-2.646A8.115 8.115 0 0 1 1.666 10c0-1.153.219-2.236.656-3.25a8.415 8.415 0 0 1 1.781-2.646A8.415 8.415 0 0 1 6.75 2.323 8.115 8.115 0 0 1 10 1.667c1.153 0 2.236.218 3.25.656a8.416 8.416 0 0 1 2.646 1.781 8.415 8.415 0 0 1 1.781 2.646 8.115 8.115 0 0 1 .657 3.25 8.115 8.115 0 0 1-.657 3.25 8.415 8.415 0 0 1-1.78 2.646 8.416 8.416 0 0 1-2.647 1.781 8.115 8.115 0 0 1-3.25.656ZM7.917 11.25a2.81 2.81 0 0 1-2.063-.854A2.81 2.81 0 0 1 5 8.333c0-.805.285-1.493.854-2.062a2.81 2.81 0 0 1 2.063-.854 2.81 2.81 0 0 1 2.062.854c.57.57.855 1.257.855 2.062a2.81 2.81 0 0 1-.855 2.063 2.81 2.81 0 0 1-2.062.854Zm0-1.667c.347 0 .642-.121.885-.364s.365-.538.365-.886c0-.347-.122-.642-.365-.885a1.205 1.205 0 0 0-.885-.365c-.347 0-.642.122-.885.365a1.205 1.205 0 0 0-.365.885c0 .348.122.643.365.886s.538.364.885.364Zm5.833 2.5a2.011 2.011 0 0 1-1.479-.604A2.011 2.011 0 0 1 11.667 10c0-.583.201-1.076.604-1.48a2.011 2.011 0 0 1 1.48-.603c.583 0 1.076.201 1.479.604.402.403.604.896.604 1.48 0 .582-.202 1.075-.604 1.478a2.012 2.012 0 0 1-1.48.604Z"></path></svg></span><span class="font-medium text-2">Entrepreneur</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/web/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.5 10h15m-15 0a7.5 7.5 0 0 0 7.5 7.5M2.5 10A7.5 7.5 0 0 1 10 2.5m7.5 7.5a7.5 7.5 0 0 1-7.5 7.5m7.5-7.5A7.5 7.5 0 0 0 10 2.5m0 15c-6.037-6.6-2.515-12.75 0-15m0 15c6.037-6.6 2.515-12.75 0-15"></path></svg></span><span class="font-medium text-2">Web</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/php/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="M15.666 8.75c.145.16.18.437.104.828-.08.407-.232.697-.458.872-.226.174-.57.26-1.033.26h-.697l.428-2.201h.785c.436 0 .726.08.871.241ZM5.85 8.509h-.786l-.428 2.202h.698c.462 0 .806-.087 1.032-.261.226-.175.379-.465.458-.872.076-.391.041-.667-.104-.828-.145-.16-.435-.241-.87-.241ZM19.98 10c0 2.9-4.468 5.25-9.98 5.25C4.488 15.25.02 12.9.02 10S4.488 4.75 10 4.75c5.512 0 9.98 2.35 9.98 5.25Zm-12.224.363c.118-.213.203-.448.253-.705.121-.624.03-1.11-.275-1.457-.304-.348-.787-.522-1.45-.522H4.08l-1.023 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.07-.136.279-.091.533-.244.762-.458.192-.177.347-.371.467-.584Zm4.034 1.178.475-2.448c.097-.498.025-.859-.217-1.08-.242-.223-.682-.334-1.32-.334H9.717l.272-1.4H8.85l-1.023 5.262h1.137l.586-3.014h.909c.29 0 .48.048.57.144.09.097.108.277.057.542l-.453 2.328h1.156Zm4.89-3.34c-.304-.348-.787-.522-1.45-.522h-2.205l-1.022 5.26h1.146l.272-1.398h.982c.433 0 .79-.045 1.069-.136.28-.091.534-.244.763-.458.192-.177.347-.371.466-.584a2.36 2.36 0 0 0 .253-.705c.122-.624.03-1.11-.274-1.457Z"></path></svg></span><span class="font-medium text-2">PHP</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/wordpress/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" fill-rule="evenodd" d="M16.581 6.402c.032.239.05.494.05.77 0 1.319-.122 1.393-2.86 9.311a7.498 7.498 0 0 0 2.81-10.081Zm-6.449 4.254-2.25 6.539a7.502 7.502 0 0 0 4.609-.12.679.679 0 0 1-.053-.103l-2.306-6.316Zm4.931-1.035c0-.927-.333-1.569-.619-2.068-.379-.618-.736-1.14-.736-1.759 0-.69.524-1.331 1.26-1.331.033 0 .065.004.097.006A7.472 7.472 0 0 0 10 2.5a7.49 7.49 0 0 0-6.266 3.38c.478.015 1.119.021 2.481-.085.405-.024.452.57.048.617 0 0-.406.048-.858.072l2.731 8.124 1.641-4.923L8.61 6.483a13.256 13.256 0 0 1-.786-.071c-.405-.024-.357-.642.047-.618 1.55.12 2.344.128 3.974 0 .405-.024.453.57.048.618 0 0-.407.048-.858.071l2.71 8.063c1.07-3.576 1.32-4.175 1.32-4.925ZM2.5 10a7.501 7.501 0 0 0 4.227 6.75L3.149 6.948A7.47 7.47 0 0 0 2.5 10Z" clip-rule="evenodd"></path></svg></span><span class="font-medium text-2">WordPress</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/mobile/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 15h.008M9.167 5h1.666M7.667 17.5h4.666c.934 0 1.4 0 1.757-.182.314-.16.569-.414.728-.728.182-.357.182-.823.182-1.757V5.167c0-.934 0-1.4-.182-1.757a1.666 1.666 0 0 0-.728-.728c-.357-.182-.823-.182-1.757-.182H7.667c-.934 0-1.4 0-1.757.182-.314.16-.569.414-.728.728C5 3.767 5 4.233 5 5.167v9.666c0 .934 0 1.4.182 1.757.16.314.414.569.728.728.357.182.823.182 1.757.182Z"></path></svg></span><span class="font-medium text-2">Mobile</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/programming/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none" class="size-5"><path fill="currentColor" d="m9.813 15.896 3.458-6.75a.39.39 0 0 0-.02-.406.396.396 0 0 0-.355-.198h-2.229V4.188c0-.112-.052-.177-.156-.198-.104-.021-.184.017-.24.114l-3.458 6.75a.39.39 0 0 0 .02.407.396.396 0 0 0 .355.197h2.229v4.355c0 .11.052.177.156.197.104.021.184-.017.24-.114ZM10 18.333a8.115 8.115 0 0 1-3.25-.656 8.416 8.416 0 0 1-2.646-1.781 8.415 8.415 0 0 1-1.78-2.646A8.115 8.115 0 0 1 1.666 10c0-1.153.219-2.236.656-3.25a8.415 8.415 0 0 1 1.781-2.646A8.415 8.415 0 0 1 6.75 2.323 8.115 8.115 0 0 1 10 1.667c1.153 0 2.236.218 3.25.656a8.416 8.416 0 0 1 2.646 1.781 8.415 8.415 0 0 1 1.781 2.646 8.115 8.115 0 0 1 .657 3.25 8.115 8.115 0 0 1-.657 3.25 8.415 8.415 0 0 1-1.78 2.646 8.416 8.416 0 0 1-2.647 1.781 8.115 8.115 0 0 1-3.25.656Zm0-1.666c1.848 0 3.42-.65 4.72-1.948 1.298-1.299 1.947-2.872 1.947-4.719 0-1.847-.65-3.42-1.948-4.719C13.421 3.983 11.848 3.333 10 3.333c-1.847 0-3.42.65-4.718 1.948-1.299 1.299-1.948 2.872-1.948 4.72 0 1.846.649 3.42 1.948 4.718C6.58 16.017 8.153 16.667 10 16.667Z"></path></svg></span><span class="font-medium text-2">Programming</span></a><a class="cursor-pointer px-3 py-1.5 flex items-center space-x-1 rounded-full border border-neutral-alpha-5 hover:border-transparent hover:bg-neutral-alpha-4 active:opacity-80 mr-4 mb-4" href="/python/"><span class="flex items-center justify-center fill-neutral-9"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20" class="size-5"><path fill="currentColor" d="M8.182 9.73h3.614c1.006 0 1.809-.83 1.809-1.84V4.446c0-.98-.828-1.717-1.81-1.88a11.289 11.289 0 0 0-1.884-.148 10.34 10.34 0 0 0-1.73.148c-1.53.27-1.808.836-1.808 1.88v1.38H9.99v.459H5.015c-1.052 0-1.972.632-2.26 1.834-.332 1.378-.347 2.238 0 3.677.257 1.071.871 1.835 1.923 1.835h1.244v-1.653c0-1.195 1.033-2.248 2.26-2.248Zm-.228-4.825a.683.683 0 0 1-.679-.687c0-.382.304-.692.679-.692.374 0 .679.31.679.692 0 .38-.305.687-.679.687Zm9.269 3.213c-.26-1.046-.756-1.834-1.81-1.834h-1.357V7.89c0 1.245-1.056 2.293-2.26 2.293H8.182c-.99 0-1.81.848-1.81 1.84v3.444c0 .98.853 1.558 1.81 1.838 1.145.337 2.243.398 3.614 0 .91-.263 1.809-.794 1.809-1.838V14.09H9.99v-.46h5.423c1.051 0 1.443-.733 1.809-1.834.377-1.133.361-2.223 0-3.677Zm-5.2 6.89c.376 0 .68.308.68.688a.686.686 0 0 1-.68.691.687.687 0 0 1-.679-.691c0-.38.306-.688.68-.688Z"></path></svg></span><span class="font-medium text-2">Python</span></a></nav><div class="mb-8 flex gap-6 overflow-x-auto sm:mb-10 sm:grid sm:grid-cols-3 lg:grid-cols-4 sm:gap-y-10 "><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/developers-guide-to-implementing-passkeys/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/12/1733526725Developer-Guide-How-to-Implement-Passkeys-300x158.jpg" alt="Developer Guide: How to Implement Passkeys" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">Developer Guide: How to Implement Passkeys</span><div><span class="block text-3-regular text-neutral-12">SitePoint Sponsors</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/accessibility-best-practices-for-single-page-applications/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/12/1733879902Accessibility-Best-Practices-for-Single-Page-Applications-SPAs-1-300x158.jpg" alt="Accessibility Best Practices for Single Page Applications (SPAs)" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">Accessibility Best Practices for Single Page Applications (SPAs)</span><div><span class="block text-3-regular text-neutral-12">Ran Ronen</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/fine-tuning-llm-with-direct-preference-optimization-dpo/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/12/1733881171Fine-Tuning-an-Open-Source-LLM-with-Axolotl-Using-Direct-Preference-Optimization-DPO-300x158.jpg" alt="Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO)" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO)</span><div><span class="block text-3-regular text-neutral-12">Komninos Chatzipapas</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/video-recaps-of-amperes-2024-developer-summit/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/12/1733331515Video-Recaps-of-Amperes-2024-Developer-Summit-300x158.jpg" alt="Video Recaps of Ampere’s 2024 Developer Summit" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">Video Recaps of Ampere’s 2024 Developer Summit</span><div><span class="block text-3-regular text-neutral-12">Craig Hardy</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/css-reset-contradiction/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/11/1731445928The-CSS-Reset-Contradiction-300x158.jpg" alt="The CSS Reset Contradiction" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">The CSS Reset Contradiction</span><div><span class="block text-3-regular text-neutral-12">Jens Oliver Meiert</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/developers-guide-to-ai-chatbot-authorization/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/11/1731534352The-Developers-Guide-to-AI-Chatbot-Authorization-300x158.jpg" alt="The Developer’s Guide to AI Chatbot Authorization" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">The Developer’s Guide to AI Chatbot Authorization</span><div><span class="block text-3-regular text-neutral-12">SitePoint Sponsors</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/best-crypto-payments-gateways-in-2024/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/11/1731539344Best-crypto-payments-gateways-in-2024-300x158.jpg" alt="Best Crypto Payments Gateways in 2024" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">Best Crypto Payments Gateways in 2024</span><div><span class="block text-3-regular text-neutral-12">NOWPayments</span></div></div></div></div></a><a class="flex-auto flex-shrink-0 w-4/5 sm:w-full" href="/tips-for-freelancers-passive-income-streams/"><div class="flex flex-col transition-opacity cursor-pointer hover:opacity-80"><div class="relative mb-2 overflow-hidden rounded-lg aspect-w-16 aspect-h-9 bg-neutral-3"><img src="https://uploads.sitepoint.com/wp-content/uploads/2024/11/1731360282Tips-for-Freelancers-Looking-to-Maximize-Passive-Income-Streams-3-300x158.jpg" alt="Tips for Freelancers Looking to Maximize Passive Income Streams" loading="lazy" class="absolute object-cover w-full h-full rounded-lg"/></div><div class="flex space-between"><div class="flex flex-col space-y-1 basis-80%"><span class="text-3-medium text-neutral-12">Tips for Freelancers Looking to Maximize Passive Income Streams</span><div><span class="block text-3-regular text-neutral-12">SitePoint Sponsors</span></div></div></div></div></a></div><div class="flex justify-center"><a class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent text-primary-12 px-5 py-3 rounded-lg text-3 bg-primary-alpha-3 hover:bg-primary-alpha-4 focus-visible:bg-primary-alpha-4 w-full sm:w-auto" href="/blog/">See all articles</a></div></div><div class="pt-8 px-5 pb-16 container-12 sm:pt-10 sm:pb-20"><div class="text-5-bold mb-2 mb-2 text-neutral-12 sm:text-7-bold sm:text-center sm:mb-4">Join our community of developers</div><div class="text-3-regular text-neutral-11 mb-8 sm:mb-10 sm:text-center">Create a free account and join our community today!</div><div class="flex overflow-auto gap-2 mb-8 sm:mb-10 sm:flex-col"><a href="/community/t/displaying-random-quotes/466498/" class=""><div class="p-4 rounded-2xl bg-neutral-2 flex flex-col gap-4 min-w-[282px] md:flex-row md:gap-6 md:items-center hover:bg-neutral-3 cursor-pointer"><div class="flex gap-2 md:flex-none w-[180px] items-center"><img src="https://avatars.discourse-cdn.com/v4/letter/y/43a26b/48.png" class="w-6 h-6 rounded-full" alt="profile cover" loading="lazy"/><div class="text-2-medium text-neutral-12 ">yul_brener</div></div><div class="text-3-medium md:flex-1 text-neutral-12 line-clamp-1">Displaying random quotes</div><div class="text-3-regular md:flex-none md:w-[150px] text-neutral-12">20 minutes ago</div><div class="md:flex-none md-w-[112px]"><div class="bg-neutral-alpha-3 rounded-md py-1.5 px-3 flex gap-1 items-center"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M4.99951 15.002L3.27278 16.7287C3.03505 16.9664 2.7634 17.02 2.45785 16.8893C2.15229 16.7587 1.99951 16.5254 1.99951 16.1895V3.50195C1.99951 3.08945 2.14639 2.73633 2.44014 2.44258C2.73389 2.14883 3.08701 2.00195 3.49951 2.00195H16.4995C16.912 2.00195 17.2651 2.14883 17.5589 2.44258C17.8526 2.73633 17.9995 3.08945 17.9995 3.50195V13.502C17.9995 13.9145 17.8526 14.2676 17.5589 14.5613C17.2651 14.8551 16.912 15.002 16.4995 15.002H4.99951Z" fill="#1C2024"></path></svg><span class="text-2-medium text-neutral-12">3<!-- --> <!-- -->replies</span></div></div></div></a><a href="/community/t/just-saying-hi/466473/" class=""><div class="p-4 rounded-2xl bg-neutral-2 flex flex-col gap-4 min-w-[282px] md:flex-row md:gap-6 md:items-center hover:bg-neutral-3 cursor-pointer"><div class="flex gap-2 md:flex-none w-[180px] items-center"><img src="https://sea2.discourse-cdn.com/sitepoint/community/user_avatar/www.sitepoint.com/hardy/48/90184_2.png" class="w-6 h-6 rounded-full" alt="profile cover" loading="lazy"/><div class="text-2-medium text-neutral-12 ">Hardy</div></div><div class="text-3-medium md:flex-1 text-neutral-12 line-clamp-1">Just saying hi!</div><div class="text-3-regular md:flex-none md:w-[150px] text-neutral-12">4 hours ago</div><div class="md:flex-none md-w-[112px]"><div class="bg-neutral-alpha-3 rounded-md py-1.5 px-3 flex gap-1 items-center"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M4.99951 15.002L3.27278 16.7287C3.03505 16.9664 2.7634 17.02 2.45785 16.8893C2.15229 16.7587 1.99951 16.5254 1.99951 16.1895V3.50195C1.99951 3.08945 2.14639 2.73633 2.44014 2.44258C2.73389 2.14883 3.08701 2.00195 3.49951 2.00195H16.4995C16.912 2.00195 17.2651 2.14883 17.5589 2.44258C17.8526 2.73633 17.9995 3.08945 17.9995 3.50195V13.502C17.9995 13.9145 17.8526 14.2676 17.5589 14.5613C17.2651 14.8551 16.912 15.002 16.4995 15.002H4.99951Z" fill="#1C2024"></path></svg><span class="text-2-medium text-neutral-12">2<!-- --> <!-- -->replies</span></div></div></div></a><a href="/community/t/feedback-on-my-spa-proof-of-concept/466442/" class=""><div class="p-4 rounded-2xl bg-neutral-2 flex flex-col gap-4 min-w-[282px] md:flex-row md:gap-6 md:items-center hover:bg-neutral-3 cursor-pointer"><div class="flex gap-2 md:flex-none w-[180px] items-center"><img src="https://avatars.discourse-cdn.com/v4/letter/s/c0e974/48.png" class="w-6 h-6 rounded-full" alt="profile cover" loading="lazy"/><div class="text-2-medium text-neutral-12 ">sibertius</div></div><div class="text-3-medium md:flex-1 text-neutral-12 line-clamp-1">Feedback on my SPA Proof-Of-Concept?</div><div class="text-3-regular md:flex-none md:w-[150px] text-neutral-12">4 hours ago</div><div class="md:flex-none md-w-[112px]"><div class="bg-neutral-alpha-3 rounded-md py-1.5 px-3 flex gap-1 items-center"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M4.99951 15.002L3.27278 16.7287C3.03505 16.9664 2.7634 17.02 2.45785 16.8893C2.15229 16.7587 1.99951 16.5254 1.99951 16.1895V3.50195C1.99951 3.08945 2.14639 2.73633 2.44014 2.44258C2.73389 2.14883 3.08701 2.00195 3.49951 2.00195H16.4995C16.912 2.00195 17.2651 2.14883 17.5589 2.44258C17.8526 2.73633 17.9995 3.08945 17.9995 3.50195V13.502C17.9995 13.9145 17.8526 14.2676 17.5589 14.5613C17.2651 14.8551 16.912 15.002 16.4995 15.002H4.99951Z" fill="#1C2024"></path></svg><span class="text-2-medium text-neutral-12">4<!-- --> <!-- -->replies</span></div></div></div></a><a href="/community/t/simulating-overflow-scroll-with-javascript-and-html-element/466472/" class=""><div class="p-4 rounded-2xl bg-neutral-2 flex flex-col gap-4 min-w-[282px] md:flex-row md:gap-6 md:items-center hover:bg-neutral-3 cursor-pointer"><div class="flex gap-2 md:flex-none w-[180px] items-center"><img src="https://avatars.discourse-cdn.com/v4/letter/j/c4cdca/48.png" class="w-6 h-6 rounded-full" alt="profile cover" loading="lazy"/><div class="text-2-medium text-neutral-12 ">jeremy58</div></div><div class="text-3-medium md:flex-1 text-neutral-12 line-clamp-1">Simulating overflow-scroll with javascript and html element?</div><div class="text-3-regular md:flex-none md:w-[150px] text-neutral-12">5 hours ago</div><div class="md:flex-none md-w-[112px]"><div class="bg-neutral-alpha-3 rounded-md py-1.5 px-3 flex gap-1 items-center"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M4.99951 15.002L3.27278 16.7287C3.03505 16.9664 2.7634 17.02 2.45785 16.8893C2.15229 16.7587 1.99951 16.5254 1.99951 16.1895V3.50195C1.99951 3.08945 2.14639 2.73633 2.44014 2.44258C2.73389 2.14883 3.08701 2.00195 3.49951 2.00195H16.4995C16.912 2.00195 17.2651 2.14883 17.5589 2.44258C17.8526 2.73633 17.9995 3.08945 17.9995 3.50195V13.502C17.9995 13.9145 17.8526 14.2676 17.5589 14.5613C17.2651 14.8551 16.912 15.002 16.4995 15.002H4.99951Z" fill="#1C2024"></path></svg><span class="text-2-medium text-neutral-12">2<!-- --> <!-- -->replies</span></div></div></div></a><a href="/community/t/how-do-you-verify-bulk-accounts-without-using-real-phone-numbers/466366/" class=""><div class="p-4 rounded-2xl bg-neutral-2 flex flex-col gap-4 min-w-[282px] md:flex-row md:gap-6 md:items-center hover:bg-neutral-3 cursor-pointer"><div class="flex gap-2 md:flex-none w-[180px] items-center"><img src="https://sea2.discourse-cdn.com/sitepoint/community/user_avatar/www.sitepoint.com/rafaelmanuellauinger/48/147083_2.png" class="w-6 h-6 rounded-full" alt="profile cover" loading="lazy"/><div class="text-2-medium text-neutral-12 ">rafaelmanuellauinger</div></div><div class="text-3-medium md:flex-1 text-neutral-12 line-clamp-1">How Do You Verify Bulk Accounts Without Using Real Phone Numbers?</div><div class="text-3-regular md:flex-none md:w-[150px] text-neutral-12">7 hours ago</div><div class="md:flex-none md-w-[112px]"><div class="bg-neutral-alpha-3 rounded-md py-1.5 px-3 flex gap-1 items-center"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M4.99951 15.002L3.27278 16.7287C3.03505 16.9664 2.7634 17.02 2.45785 16.8893C2.15229 16.7587 1.99951 16.5254 1.99951 16.1895V3.50195C1.99951 3.08945 2.14639 2.73633 2.44014 2.44258C2.73389 2.14883 3.08701 2.00195 3.49951 2.00195H16.4995C16.912 2.00195 17.2651 2.14883 17.5589 2.44258C17.8526 2.73633 17.9995 3.08945 17.9995 3.50195V13.502C17.9995 13.9145 17.8526 14.2676 17.5589 14.5613C17.2651 14.8551 16.912 15.002 16.4995 15.002H4.99951Z" fill="#1C2024"></path></svg><span class="text-2-medium text-neutral-12">3<!-- --> <!-- -->replies</span></div></div></div></a><a href="/community/t/react-handling-updating-settings-without-breaking-component/466327/" class=""><div class="p-4 rounded-2xl bg-neutral-2 flex flex-col gap-4 min-w-[282px] md:flex-row md:gap-6 md:items-center hover:bg-neutral-3 cursor-pointer"><div class="flex gap-2 md:flex-none w-[180px] items-center"><img src="https://avatars.discourse-cdn.com/v4/letter/j/c4cdca/48.png" class="w-6 h-6 rounded-full" alt="profile cover" loading="lazy"/><div class="text-2-medium text-neutral-12 ">jeremy58</div></div><div class="text-3-medium md:flex-1 text-neutral-12 line-clamp-1">React: handling updating settings without breaking component?</div><div class="text-3-regular md:flex-none md:w-[150px] text-neutral-12">8 hours ago</div><div class="md:flex-none md-w-[112px]"><div class="bg-neutral-alpha-3 rounded-md py-1.5 px-3 flex gap-1 items-center"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M4.99951 15.002L3.27278 16.7287C3.03505 16.9664 2.7634 17.02 2.45785 16.8893C2.15229 16.7587 1.99951 16.5254 1.99951 16.1895V3.50195C1.99951 3.08945 2.14639 2.73633 2.44014 2.44258C2.73389 2.14883 3.08701 2.00195 3.49951 2.00195H16.4995C16.912 2.00195 17.2651 2.14883 17.5589 2.44258C17.8526 2.73633 17.9995 3.08945 17.9995 3.50195V13.502C17.9995 13.9145 17.8526 14.2676 17.5589 14.5613C17.2651 14.8551 16.912 15.002 16.4995 15.002H4.99951Z" fill="#1C2024"></path></svg><span class="text-2-medium text-neutral-12">2<!-- --> <!-- -->replies</span></div></div></div></a></div><div class="flex justify-center"><a id="banner-community-link" href="/community/" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent text-primary-12 px-5 py-3 rounded-lg text-3 bg-primary-alpha-3 hover:bg-primary-alpha-4 focus-visible:bg-primary-alpha-4 w-full sm:w-auto">Browse the forum</a></div></div></main><div class="relative overflow-hidden isolate bg-neutral-inverse-1"><svg xmlns="http://www.w3.org/2000/svg" width="17.12500rem" height="25.12500rem" fill="none" class="absolute bottom-0 hidden lg:block -z-10" viewBox="0 0 274 402"><path fill="url(#paint0_linear_1288_14088)" fill-opacity="0.15" d="M51.397 4.16a40.97 40.97 0 00-34.794 0L-142.71 78.877a40.972 40.972 0 00-22.493 27.745l-38.943 166.166a40.971 40.971 0 008.191 35.305l109.625 133.877a40.97 40.97 0 0031.699 15.014h177.264a40.971 40.971 0 0031.699-15.014l109.625-133.877a40.971 40.971 0 008.191-35.305l-38.943-166.166a40.97 40.97 0 00-22.493-27.745L51.397 4.16z"></path><defs><linearGradient id="paint0_linear_1288_14088" x1="34" x2="34" y1="-4" y2="481" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="9.87500rem" height="16.0625rem" fill="none" class="absolute bottom-0 hidden lg:block -z-10" viewBox="0 0 158 257"><path fill="url(#paint0_linear_1288_14089)" fill-opacity="0.17" d="M-65.132 4.13a40.97 40.97 0 00-34.736 0l-159.72 74.759a40.968 40.968 0 00-22.517 27.74l-39.012 166.127a40.97 40.97 0 008.212 35.354l109.858 133.893a40.972 40.972 0 0031.673 14.982H6.374a40.97 40.97 0 0031.673-14.982L147.905 308.11a40.97 40.97 0 008.212-35.354l-39.012-166.127a40.969 40.969 0 00-22.517-27.74l-159.72-74.76z"></path><defs><linearGradient id="paint0_linear_1288_14089" x1="-82.5" x2="-82.5" y1="-4" y2="481" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="18.12500rem" height="23.75rem" fill="none" class="absolute top-0 right-0 hidden lg:block -z-10" viewBox="0 0 290 380"><path fill="url(#paint0_linear_1288_14092)" fill-opacity="0.17" d="M307.365-168.873a40.966 40.966 0 00-34.73 0L72.649-75.285a40.97 40.97 0 00-22.52 27.74L1.177 160.879a40.97 40.97 0 008.214 35.358l137.718 167.817a40.97 40.97 0 0031.671 14.979h222.442a40.97 40.97 0 0031.671-14.979L570.61 196.237a40.968 40.968 0 008.214-35.358L529.87-47.545a40.966 40.966 0 00-22.519-27.74l-199.986-93.588z"></path><defs><linearGradient id="paint0_linear_1288_14092" x1="290" x2="290" y1="-177" y2="408" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="15.87500rem" height="15.1875rem" fill="none" class="lg:hidden absolute -top-[4.601875rem] -right-[8.28125rem] -z-10" viewBox="0 0 254 243"><path fill="url(#paint0_linear_1789_43772)" fill-opacity="0.17" d="M144.439 4.495a40.97 40.97 0 00-34.731 0L41.012 36.643a40.97 40.97 0 00-22.519 27.74L1.965 134.75a40.97 40.97 0 008.214 35.358l46.863 57.105a40.969 40.969 0 0031.67 14.98h76.723a40.97 40.97 0 0031.67-14.98l46.863-57.105a40.97 40.97 0 008.214-35.358l-16.528-70.369a40.971 40.971 0 00-22.519-27.739L144.439 4.495z"></path><defs><linearGradient id="paint0_linear_1789_43772" x1="127.074" x2="127.074" y1="-3.632" y2="255" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><svg xmlns="http://www.w3.org/2000/svg" width="15.8125rem" height="15.125rem" fill="none" class="lg:hidden absolute -top-[9.4375rem] -right-[12.370625rem] -z-10" viewBox="0 0 253 242"><path fill="url(#paint0_linear_1789_43771)" fill-opacity="0.15" d="M143.869 4.127a40.97 40.97 0 00-34.731 0L40.442 36.275a40.97 40.97 0 00-22.519 27.74L1.395 134.382a40.97 40.97 0 008.214 35.358l46.863 57.105a40.968 40.968 0 0031.67 14.979h76.722a40.97 40.97 0 0031.671-14.979l46.863-57.105a40.974 40.974 0 008.214-35.358l-16.528-70.369a40.971 40.971 0 00-22.519-27.74L143.869 4.128z"></path><defs><linearGradient id="paint0_linear_1789_43771" x1="126.503" x2="126.503" y1="-4" y2="254.632" gradientUnits="userSpaceOnUse"><stop stop-color="#FBFBFB"></stop><stop offset="1" stop-color="#FBFBFB" stop-opacity="0"></stop></linearGradient></defs></svg><div class="container py-16 lg:py-32"><div class="w-full max-w-screen-md mb-8 text-neutral-inverse-12 text-5 font-bold sm:text-7 sm:mx-auto sm:text-center sm:mb-10">Get the freshest news and resources for developers, designers and digital creators in your inbox each week</div><div data-mooform-id="5a715e72-99bb-4d4c-a372-1594e87b401d" class="flex justify-center align-center min-h-32 text-neutral-inverse-12 sm:min-h-16"><div class="text-center hidden only:block"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="spinner" class="svg-inline--fa fa-spinner animate-spin" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"></path></svg> Loading form</div></div></div></div><div class="py-16 px-5 container-12 lg:py-20"><div class="flex flex-col gap-8 mb-8 lg:flex-row lg:justify-between lg:mb-10 lg:items-center"><a aria-current="page" class="" href="/"><svg viewBox="0 0 123 27" class="fill-current text-black w-[115.5px] h-[24px] mx-auto lg:mx-0"><title>SitePoint</title><g fill-rule="evenodd"><path d="M31.36,16.75 C31.56,17.07 31.82,17.31 32.14,17.50 C32.46,17.68 32.82,17.82 33.23,17.89 C33.63,17.97 34.05,18.01 34.48,18.01 C34.81,18.01 35.16,17.99 35.52,17.94 C35.89,17.89 36.22,17.81 36.53,17.68 C36.83,17.55 37.08,17.36 37.28,17.11 C37.48,16.87 37.58,16.55 37.58,16.17 C37.58,15.64 37.37,15.24 36.96,14.97 C36.55,14.69 36.03,14.47 35.41,14.31 C34.79,14.14 34.12,13.99 33.39,13.85 C32.66,13.71 31.99,13.52 31.37,13.27 C30.75,13.03 30.23,12.68 29.82,12.23 C29.41,11.78 29.20,11.16 29.20,10.36 C29.20,9.73 29.34,9.20 29.63,8.75 C29.92,8.30 30.30,7.94 30.75,7.66 C31.20,7.38 31.72,7.17 32.29,7.03 C32.86,6.90 33.42,6.83 33.99,6.83 C34.71,6.83 35.38,6.89 35.99,7.01 C36.61,7.13 37.15,7.34 37.62,7.63 C38.09,7.93 38.46,8.33 38.75,8.83 C39.03,9.34 39.19,9.96 39.24,10.72 L37.13,10.72 C37.10,10.32 36.99,9.98 36.81,9.72 C36.63,9.46 36.40,9.25 36.12,9.08 C35.84,8.92 35.53,8.81 35.19,8.74 C34.85,8.66 34.51,8.63 34.16,8.63 C33.84,8.63 33.53,8.65 33.20,8.70 C32.88,8.75 32.59,8.83 32.32,8.95 C32.06,9.07 31.84,9.23 31.68,9.43 C31.51,9.63 31.43,9.89 31.43,10.21 C31.43,10.56 31.56,10.86 31.82,11.09 C32.07,11.32 32.40,11.51 32.80,11.66 C33.19,11.82 33.64,11.95 34.13,12.05 C34.63,12.15 35.13,12.26 35.62,12.37 C36.15,12.49 36.67,12.62 37.17,12.78 C37.67,12.94 38.12,13.15 38.51,13.42 C38.90,13.68 39.21,14.01 39.45,14.41 C39.69,14.81 39.81,15.31 39.81,15.90 C39.81,16.66 39.65,17.28 39.33,17.77 C39.01,18.27 38.58,18.67 38.06,18.98 C37.54,19.28 36.96,19.49 36.30,19.61 C35.65,19.73 35.00,19.79 34.36,19.79 C33.65,19.79 32.97,19.72 32.32,19.58 C31.68,19.43 31.11,19.20 30.61,18.87 C30.12,18.54 29.72,18.11 29.42,17.57 C29.13,17.03 28.96,16.38 28.93,15.61 L31.03,15.61 C31.05,16.06 31.16,16.44 31.36,16.75" id="Fill-1"></path><path d="M42.27,7.12 L44.37,7.12 L44.37,19.53 L42.27,19.53 L42.27,7.12 Z" id="Fill-2"></path><path d="M53.13,7.12 L53.13,8.92 L50.57,8.92 L50.57,16.62 C50.57,16.86 50.59,17.05 50.63,17.20 C50.67,17.34 50.75,17.46 50.87,17.54 C50.99,17.62 51.15,17.67 51.35,17.69 C51.56,17.71 51.83,17.73 52.16,17.73 L53.13,17.73 L53.13,19.53 L51.51,19.53 C50.97,19.53 50.50,19.49 50.11,19.42 C49.72,19.35 49.41,19.22 49.17,19.02 C48.93,18.83 48.75,18.56 48.64,18.21 C48.52,17.86 48.46,17.39 48.46,16.81 L48.46,8.92 L46.28,8.92 L46.28,7.12 L48.46,7.12 L48.46,3.39 L50.57,3.39 L50.57,7.12 L53.13,7.12" id="Fill-3"></path><path d="M64.53,18.73 C63.57,19.44 62.36,19.79 60.91,19.79 C59.89,19.79 59.00,19.63 58.25,19.31 C57.49,18.99 56.86,18.54 56.35,17.97 C55.84,17.39 55.45,16.70 55.20,15.90 C54.94,15.10 54.80,14.23 54.76,13.29 C54.76,12.34 54.91,11.48 55.21,10.69 C55.51,9.91 55.92,9.23 56.46,8.65 C57.00,8.08 57.63,7.63 58.37,7.31 C59.11,6.99 59.91,6.83 60.79,6.83 C61.93,6.83 62.87,7.05 63.63,7.51 C64.38,7.97 64.98,8.55 65.44,9.25 C65.89,9.96 66.20,10.73 66.38,11.56 C66.55,12.39 66.62,13.18 66.59,13.93 L56.99,13.93 C56.98,14.48 57.04,14.99 57.19,15.48 C57.34,15.97 57.58,16.40 57.91,16.78 C58.24,17.16 58.66,17.46 59.18,17.68 C59.69,17.90 60.29,18.01 60.98,18.01 C61.88,18.01 62.61,17.82 63.18,17.41 C63.75,17.02 64.13,16.41 64.31,15.59 L66.39,15.59 C66.11,16.98 65.49,18.03 64.53,18.73 L64.53,18.73 Z M64.02,10.76 C63.83,10.33 63.58,9.96 63.25,9.65 C62.93,9.34 62.55,9.09 62.11,8.90 C61.68,8.72 61.19,8.63 60.66,8.63 C60.12,8.63 59.62,8.72 59.19,8.90 C58.75,9.09 58.37,9.34 58.06,9.66 C57.75,9.98 57.50,10.35 57.32,10.78 C57.13,11.20 57.03,11.65 56.99,12.13 L64.36,12.13 C64.32,11.65 64.21,11.20 64.02,10.76 L64.02,10.76 Z" id="Fill-4"></path><path d="M70.95,7.12 L70.95,8.80 L71.00,8.80 C71.35,8.11 71.89,7.61 72.64,7.30 C73.38,6.98 74.20,6.83 75.09,6.83 C76.09,6.83 76.95,7.00 77.68,7.36 C78.42,7.71 79.03,8.18 79.52,8.78 C80.01,9.38 80.37,10.08 80.62,10.86 C80.87,11.65 80.99,12.48 80.99,13.36 C80.99,14.24 80.87,15.07 80.63,15.85 C80.39,16.64 80.03,17.32 79.54,17.91 C79.06,18.49 78.44,18.95 77.71,19.29 C76.97,19.62 76.12,19.79 75.14,19.79 C74.83,19.79 74.48,19.76 74.09,19.70 C73.70,19.63 73.32,19.53 72.94,19.38 C72.56,19.24 72.20,19.04 71.86,18.79 C71.52,18.55 71.23,18.24 71.00,17.87 L70.95,17.87 L70.95,24.26 L68.84,24.26 L68.84,7.12 L70.95,7.12 L70.95,7.12 Z M78.53,11.52 C78.37,10.97 78.13,10.48 77.81,10.04 C77.49,9.61 77.07,9.27 76.57,9.01 C76.06,8.76 75.47,8.63 74.79,8.63 C74.08,8.63 73.48,8.76 72.98,9.04 C72.49,9.31 72.08,9.67 71.77,10.10 C71.46,10.55 71.23,11.05 71.09,11.60 C70.95,12.17 70.88,12.73 70.88,13.31 C70.88,13.92 70.95,14.51 71.10,15.07 C71.25,15.64 71.48,16.14 71.81,16.57 C72.13,17.01 72.55,17.35 73.06,17.62 C73.57,17.88 74.19,18.01 74.92,18.01 C75.65,18.01 76.25,17.88 76.74,17.61 C77.23,17.34 77.62,16.98 77.92,16.53 C78.22,16.08 78.43,15.57 78.56,14.99 C78.70,14.41 78.76,13.82 78.76,13.21 C78.76,12.64 78.68,12.07 78.53,11.52 L78.53,11.52 Z" id="Fill-5"></path><path d="M83.17,10.78 C83.44,9.98 83.84,9.30 84.36,8.71 C84.89,8.13 85.55,7.67 86.33,7.33 C87.10,7.00 87.99,6.83 89.00,6.83 C90.03,6.83 90.92,7.00 91.69,7.33 C92.46,7.67 93.11,8.13 93.64,8.71 C94.17,9.30 94.56,9.98 94.83,10.78 C95.09,11.57 95.23,12.42 95.23,13.33 C95.23,14.25 95.09,15.09 94.83,15.88 C94.56,16.66 94.17,17.35 93.64,17.93 C93.11,18.52 92.46,18.97 91.69,19.30 C90.92,19.63 90.03,19.79 89.00,19.79 C87.99,19.79 87.10,19.63 86.33,19.30 C85.55,18.97 84.89,18.52 84.36,17.93 C83.84,17.35 83.44,16.66 83.17,15.88 C82.91,15.09 82.78,14.25 82.78,13.33 C82.78,12.42 82.91,11.57 83.17,10.78 L83.17,10.78 Z M85.32,15.34 C85.53,15.92 85.81,16.41 86.18,16.80 C86.54,17.19 86.96,17.49 87.45,17.70 C87.94,17.91 88.46,18.01 89.00,18.01 C89.55,18.01 90.06,17.91 90.55,17.70 C91.04,17.49 91.46,17.19 91.83,16.80 C92.19,16.41 92.48,15.92 92.68,15.34 C92.89,14.75 92.99,14.09 92.99,13.33 C92.99,12.58 92.89,11.91 92.68,11.33 C92.48,10.75 92.19,10.25 91.83,9.85 C91.46,9.45 91.04,9.15 90.55,8.94 C90.06,8.73 89.55,8.63 89.00,8.63 C88.46,8.63 87.94,8.73 87.45,8.94 C86.96,9.15 86.54,9.45 86.18,9.85 C85.81,10.25 85.53,10.75 85.32,11.33 C85.11,11.91 85.01,12.58 85.01,13.33 C85.01,14.09 85.11,14.75 85.32,15.34 L85.32,15.34 Z" id="Fill-6"></path><path d="M97.83,7.12 L99.94,7.12 L99.94,19.53 L97.83,19.53 L97.83,7.12 Z" id="Fill-7"></path><path d="M105.19,7.12 L105.19,9.08 L105.24,9.08 C106.12,7.58 107.51,6.83 109.41,6.83 C110.25,6.83 110.95,6.94 111.51,7.16 C112.08,7.39 112.53,7.70 112.88,8.10 C113.23,8.50 113.47,8.98 113.61,9.53 C113.75,10.08 113.82,10.69 113.82,11.36 L113.82,19.53 L111.71,19.53 L111.71,11.12 C111.71,10.36 111.48,9.75 111.02,9.30 C110.56,8.85 109.92,8.63 109.11,8.63 C108.46,8.63 107.91,8.72 107.43,8.92 C106.96,9.11 106.57,9.38 106.26,9.73 C105.94,10.08 105.71,10.50 105.55,10.97 C105.39,11.44 105.32,11.96 105.32,12.52 L105.32,19.53 L103.21,19.53 L103.21,7.12 L105.19,7.12" id="Fill-8"></path><path d="M122.47,7.12 L122.47,8.92 L119.92,8.92 L119.92,16.62 C119.92,16.86 119.94,17.05 119.98,17.20 C120.02,17.34 120.10,17.46 120.22,17.54 C120.33,17.62 120.49,17.67 120.70,17.69 C120.91,17.71 121.18,17.73 121.50,17.73 L122.47,17.73 L122.47,19.53 L120.86,19.53 C120.32,19.53 119.85,19.49 119.46,19.42 C119.07,19.35 118.76,19.22 118.52,19.02 C118.28,18.83 118.10,18.56 117.99,18.21 C117.87,17.86 117.81,17.39 117.81,16.81 L117.81,8.92 L115.63,8.92 L115.63,7.12 L117.81,7.12 L117.81,3.39 L119.92,3.39 L119.92,7.12 L122.47,7.12" id="Fill-9"></path><path d="M0.67,11.87 L2.62,13.76 L8.76,19.50 L11.41,16.94 C11.65,16.61 11.64,16.16 11.36,15.84 L8.94,13.72 L8.95,13.72 L6.34,11.19 C6.04,10.84 6.04,10.32 6.37,9.99 L13.38,3.21 L10.20,0.12 L0.68,9.31 C-0.05,10.02 -0.05,11.17 0.67,11.87" id="Fill-10"></path><path d="M21.60,15.15 L19.66,13.27 L13.51,7.53 L10.86,10.08 C10.62,10.42 10.64,10.87 10.91,11.19 L13.33,13.31 L13.33,13.31 L15.93,15.84 C16.24,16.19 16.23,16.70 15.91,17.04 L8.89,23.82 L12.08,26.91 L19.65,19.60 L21.60,17.71 C22.33,17.01 22.33,15.86 21.60,15.15" id="Fill-11"></path><path d="M44.55,4.58 C44.55,5.24 44.00,5.77 43.32,5.77 C42.64,5.77 42.09,5.24 42.09,4.58 C42.09,3.93 42.64,3.39 43.32,3.39 C44.00,3.39 44.55,3.93 44.55,4.58" id="Fill-12"></path><path d="M100.11,4.58 C100.11,5.24 99.56,5.77 98.88,5.77 C98.20,5.77 97.65,5.24 97.65,4.58 C97.65,3.93 98.20,3.39 98.88,3.39 C99.56,3.39 100.11,3.93 100.11,4.58" id="Fill-13"></path></g></svg></a><a id="footer-cta" href="/premium/pricing/?ref_source=sitepoint&unlock=true&ref_medium=hp-footer" class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent px-4 py-2.5 rounded-md text-2 bg-primary-9 text-white hover:bg-primary-10 focus-visible:bg-primary-10 w-full lg:w-fit">Start Free Trial</a></div><div class="grid grid-cols-2 gap-y-8 mb-8 lg:mb-10 lg:grid-cols-4"><div class="flex flex-col gap-4"><div class="text-2 font-semibold text-neutral-11">Stuff we do</div><a href="/premium/library/" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1">Premium</a><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/newsletters/">Newsletters</a><a href="/premium/library/paths/" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1">Learning paths</a><a href="/premium/library/" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1">Library</a><a href="/community/" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1">Forums</a></div><div class="flex flex-col gap-4"><div class="text-2 font-semibold text-neutral-11">Contact</div><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/contact-us/">Contact us</a><a href="https://sitepointhq.notion.site/Sitepoint-FAQs-619b2b88af4f4a5db27beade7ca2cce6" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1">FAQ</a><a href="https://sitepoint.typeform.com/to/HtAXVN" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1">Publish your book with us</a><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/write-for-us/">Write an article with us</a><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/partnerships/">Advertise</a></div><div class="flex flex-col gap-4"><div class="text-2 font-semibold text-neutral-11">About</div><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/about-us/">Our story</a><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/premium-for-teams/">Corporate memberships</a><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/legals/">Terms of use</a><a class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" href="/privacy-policy/">Privacy policy</a></div><div class="flex flex-col gap-4"><div class="text-2 font-semibold text-neutral-11">Connect</div><a href="/sitepoint.rss" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 20 20"><path d="M4.167 17.5c-.459 0-.851-.163-1.177-.49a1.605 1.605 0 01-.49-1.177c0-.458.163-.85.49-1.177.326-.326.718-.49 1.177-.49.458 0 .85.164 1.177.49.326.327.49.719.49 1.177 0 .459-.164.851-.49 1.177-.327.327-.719.49-1.177.49zm11.25 0c-.361 0-.663-.132-.907-.396a1.625 1.625 0 01-.427-.937 11.43 11.43 0 00-1.093-3.782 11.69 11.69 0 00-2.24-3.135 11.69 11.69 0 00-3.135-2.24 11.43 11.43 0 00-3.782-1.093 1.624 1.624 0 01-.937-.427 1.182 1.182 0 01-.396-.907c0-.36.125-.656.375-.885.25-.23.549-.33.896-.302 1.708.153 3.309.587 4.802 1.302a14.229 14.229 0 013.948 2.781 14.23 14.23 0 012.781 3.948 13.882 13.882 0 011.302 4.802c.028.347-.073.646-.302.896-.23.25-.524.375-.885.375zm-5 0a1.24 1.24 0 01-.896-.365 1.66 1.66 0 01-.48-.885 6.326 6.326 0 00-.656-1.885 6.795 6.795 0 00-1.177-1.573 6.797 6.797 0 00-1.573-1.177 6.325 6.325 0 00-1.885-.657 1.66 1.66 0 01-.885-.479 1.24 1.24 0 01-.365-.896c0-.36.125-.66.375-.895.25-.237.549-.327.896-.271a8.821 8.821 0 012.844.885 9.34 9.34 0 014.083 4.083c.451.882.746 1.83.885 2.844.056.347-.034.646-.27.896a1.18 1.18 0 01-.896.375z"></path></svg><span>RSS</span></a><a href="https://www.facebook.com/sitepoint" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 20 20"><path d="M18 9.95a8.084 8.084 0 00-1.309-4.313 8.014 8.014 0 00-3.409-2.928A7.956 7.956 0 004.767 3.96 8.055 8.055 0 002.334 7.75a8.097 8.097 0 00-.027 4.51 8.056 8.056 0 002.389 3.816A7.98 7.98 0 008.75 18v-5.705h-2V9.95h2V8.17a2.863 2.863 0 01.766-2.286 2.829 2.829 0 012.234-.874c.6.008 1.198.062 1.79.161v2.013h-1a1.153 1.153 0 00-.953.32 1.167 1.167 0 00-.347.947v1.52h2.22l-.36 2.344h-1.85v5.635a7.988 7.988 0 004.848-2.741A8.08 8.08 0 0018 9.95z"></path></svg><span>Facebook</span></a><a href="https://www.instagram.com/sitepointdotcom/?hl=en" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 20 20"><path d="M13.248 7.543a1.38 1.38 0 00-.791-.791 2.305 2.305 0 00-.774-.144c-.439-.02-.57-.025-1.683-.025s-1.244.005-1.683.025a2.305 2.305 0 00-.774.144 1.38 1.38 0 00-.791.791c-.092.248-.14.51-.144.774-.02.439-.025.57-.025 1.683s.005 1.244.025 1.683c.003.265.052.527.144.774a1.381 1.381 0 00.791.791c.248.092.51.14.774.144.439.02.57.024 1.683.024s1.244-.004 1.683-.025c.265-.003.527-.051.774-.143a1.38 1.38 0 00.791-.791c.092-.248.14-.51.144-.774.02-.439.024-.57.024-1.683s-.004-1.244-.025-1.683a2.302 2.302 0 00-.143-.774zM10 12.14a2.14 2.14 0 110-4.28 2.14 2.14 0 010 4.28zm2.224-3.864a.5.5 0 110-1 .5.5 0 010 1zM11.39 10a1.39 1.39 0 11-2.78 0 1.39 1.39 0 012.78 0zM10 2a8 8 0 100 16 8 8 0 000-16zm4.142 9.717a3.059 3.059 0 01-.194 1.012 2.13 2.13 0 01-1.219 1.219 3.06 3.06 0 01-1.01.194c-.446.02-.587.025-1.719.025-1.132 0-1.273-.005-1.718-.025a3.059 3.059 0 01-1.011-.194 2.13 2.13 0 01-1.218-1.219 3.06 3.06 0 01-.195-1.01c-.02-.446-.025-.587-.025-1.719 0-1.132.005-1.273.025-1.718.007-.346.073-.688.194-1.011A2.13 2.13 0 017.27 6.05a3.058 3.058 0 011.01-.193c.446-.02.587-.025 1.719-.025 1.132 0 1.273.005 1.718.025.346.007.688.073 1.011.194a2.13 2.13 0 011.219 1.219c.12.323.186.665.194 1.01.02.446.025.587.025 1.719 0 1.132-.005 1.273-.025 1.717z"></path></svg><span>Instagram</span></a><a href="https://twitter.com/sitepointdotcom" class="text-neutral-12 hover:text-neutral-alpha-11 focus-visible:text-neutral-alpha-11 font-medium inline-flex items-center space-x-1" target="_blank" rel="noopener noreferrer"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.734 5.636H5.381l3.456 4.942-3.277 3.786h1.072l2.682-3.106 2.172 3.106h3.353l-3.673-5.25 3.003-3.478h-1.055l-2.422 2.799-1.958-2.799zm4.482 7.863h-1.301L7.003 6.497h1.3l4.913 7.002z" clip-rule="evenodd"></path></svg><span>Twitter (X)</span></a><div class="text-1-regular text-neutral-10">This site is protected by reCAPTCHA and the Google<a href="https://policies.google.com/privacy" class="text-current" rel="noopener noreferrer" target="_blank"> <!-- -->Privacy Policy<!-- --> </a>and<a href="https://policies.google.com/terms" class="text-current" rel="noopener noreferrer" target="_blank"> <!-- -->Terms of Service<!-- --> </a>apply.</div></div></div><div class="text-1-medium text-neutral-10 text-center mb-8">© 2000 – <!-- -->2024<!-- --> SitePoint Pty. Ltd.</div><div class="mx-auto w-fit lg:mx-0 lg:float-right"><button class="inline-flex items-center justify-center border whitespace-nowrap font-medium focus-visible:opacity-80 disabled:bg-neutral-alpha-3 disabled:text-neutral-alpha-8 border-transparent bg-transparent text-neutral-12 px-3 py-1.5 rounded-md text-2 hover:bg-neutral-alpha-3 focus-visible:bg-neutral-alpha-3">Back to top<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="chevron-up" class="svg-inline--fa fa-chevron-up fa-xs ml-2" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"></path></svg></button></div></div><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=721455246308784&ev=PageView&noscript=1" /></noscript></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> <script id="gatsby-chunk-mapping" > window.___chunkMapping="{\"app\":[\"/app-48386ace099fa9c70532.js\"],\"gatsby-plugin-image\":[\"/gatsby-plugin-image-efa17f1fd767100af6e9.js\"],\"component---src-pages-404-js\":[\"/component---src-pages-404-js-13133228f30e0afaf2a6.js\"],\"component---src-pages-about-us-tsx\":[\"/component---src-pages-about-us-tsx-fbabcd61683a1f57eb73.js\"],\"component---src-pages-contact-us-js\":[\"/component---src-pages-contact-us-js-59e5417356065cf23085.js\"],\"component---src-pages-legals-js\":[\"/component---src-pages-legals-js-0eb5faa65d1c2c8bde92.js\"],\"component---src-pages-newsletters-tsx\":[\"/component---src-pages-newsletters-tsx-03f6e1137da0d9d45c26.js\"],\"component---src-pages-partnerships-js\":[\"/component---src-pages-partnerships-js-ac307a41d9323fada183.js\"],\"component---src-pages-premium-js\":[\"/component---src-pages-premium-js-4f8b4f2ef95caf06324b.js\"],\"component---src-pages-privacy-policy-js\":[\"/component---src-pages-privacy-policy-js-7e44d44cc62997aced4d.js\"],\"component---src-templates-author-index-js\":[\"/component---src-templates-author-index-js-da2607c3507e1dc605e9.js\"],\"component---src-templates-category-post-list-tsx\":[\"/component---src-templates-category-post-list-tsx-1152aa2a2f6c63062c6a.js\"],\"component---src-templates-home-js\":[\"/component---src-templates-home-js-de29024c7610fbf75571.js\"],\"component---src-templates-hub-article-tsx\":[\"/component---src-templates-hub-article-tsx-6a0707ac787dd30b71ac.js\"],\"component---src-templates-hub-tsx\":[\"/component---src-templates-hub-tsx-7d4bc1c9e3e36a685d83.js\"],\"component---src-templates-post-list-tsx\":[\"/component---src-templates-post-list-tsx-e14ef8cdabb0e850f2aa.js\"],\"component---src-templates-post-tsx\":[\"/component---src-templates-post-tsx-58a45c7d3234539f73c8.js\"],\"component---src-templates-tag-list-index-js\":[\"/component---src-templates-tag-list-index-js-33915d7948a1b1c49893.js\"],\"component---src-templates-teams-js\":[\"/component---src-templates-teams-js-0de1e8f3a7795cbc51da.js\"],\"slice---src-slices-header-index-tsx\":[\"/slice---src-slices-header-index-tsx-f88f5a20c263a23f35bd.js\"],\"slice---src-slices-subcategory-navigation-tsx\":[\"/slice---src-slices-subcategory-navigation-tsx-ef65f83a8f4b91366558.js\"]}"; </script> <script>window.___webpackCompilationHash="c6d1c5e4e6f5b55a3cbf";</script><script src="/webpack-runtime-07b27ea23707b7a75edf.js" async></script><script src="/framework-6a525285796fb83f2864.js" async></script><script src="/c0d53ec4-3909e07c071752347e8c.js" async></script><script src="/app-48386ace099fa9c70532.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html>