/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#1e293b;background:#fff;font-family:Roboto,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:rgba(2,132,199,.18)}img{width:100%}ul{font-size:18px;margin-bottom:32px;list-style:none;padding-left:0}@media(min-width:40rem){ul{font-size:20px}}ul li{margin-bottom:16px;display:flex;align-items:baseline}ul li:before{content:"▸";margin-right:8px;color:#0284c7;font-weight:700}ol{font-size:18px;margin-bottom:32px;padding-left:0}@media(min-width:40rem){ol{font-size:20px}}ol li{margin-bottom:16px}ol li::marker{margin-right:8px;color:#0284c7;font-weight:700}@media(max-width:40rem){ol li{margin-left:24px}}pre{margin-left:-16px;margin-right:-16px;border-radius:0;overflow:hidden;box-shadow:0 4px 12px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.06)}pre code,pre code.hljs{display:block;padding:16px 24px;font-family:Roboto Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;line-height:1.6;border-radius:0}@media(min-width:40rem){pre code,pre code.hljs{font-size:16px}pre{margin-left:-32px;margin-right:-32px;border-radius:10px}}li code,p code{position:relative;display:inline;font-family:Roboto Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;background:#0f172a;color:#e2e8f0;border-radius:6px;font-size:14px;padding:2px 8px}@media(min-width:40rem){li code,p code{font-size:16px}}a{color:#0284c7;font-weight:500;text-decoration:none;transition:color .15s ease,box-shadow .15s ease;box-shadow:0 1px 0 rgba(2,132,199,0)}a:hover{color:#0ea5e9;box-shadow:0 1px 0 #0ea5e9}.section{padding:24px 0}.section.odd{background-color:#fff}.section.even{background-color:#f1f5f9}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}@media(min-width:40rem){.container{max-width:768px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}}.fixed-promo{position:fixed;top:0;left:0;right:0;z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 0 0}.fixed-promo .container{display:flex}.fixed-promo .inner{display:flex;justify-content:center;gap:4px;margin-left:auto;margin-right:auto;padding:8px 16px;border-radius:0 0 10px 10px;background:#0f172a;box-shadow:0 4px 12px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.06)}.fixed-promo .inner a{color:#38bdf8}.fixed-promo .inner a:hover{color:#7dd3fc;box-shadow:none}.fixed-promo .inner .badge{font-size:14px;font-weight:700;background:#334155;color:#e2e8f0;padding:8px 12px;border-radius:6px}.fixed-promo a,.fixed-promo span{font-size:16px}@media(max-width:40rem){.fixed-promo a,.fixed-promo span{font-size:16px;line-height:150%}}h1{font-size:36px;line-height:1.2;font-family:Lora,serif;font-weight:700;color:#0f172a;letter-spacing:-.01em}@media(min-width:40rem){h1{font-size:48px}}h2{color:#0f172a;font-family:Lora,serif;font-size:24px;line-height:1.3;letter-spacing:-.01em;margin-top:48px;margin-bottom:16px}@media(min-width:40rem){h2{font-size:30px;margin-top:48px;margin-bottom:16px}}h3{color:#0f172a;font-size:18px;line-height:1.4;margin-top:48px;margin-bottom:32px}@media(max-width:40rem){h3{font-size:20px;margin-top:48px;margin-bottom:16px;line-height:120%}}p{font-size:18px;margin-bottom:24px;line-height:1.8}@media(min-width:40rem){p{font-size:20px;margin-bottom:32px;line-height:1.7}}li p{margin:0}.article-page h1.article-title{text-align:center;margin-top:64px;margin-bottom:64px;color:#0f172a}.article-page .body{font-size:20px}@media(min-width:40rem){.article-page .body{font-size:18px}}.article-image{text-align:center}.article-image figcaption{text-align:center;font-size:14px;color:#64748b;margin:1rem 0}.article-image img{width:100%;border-radius:10px}.article-image{margin-left:-16px;margin-right:-16px}@media(min-width:40rem){.article-image{margin-left:-32px;margin-right:-32px}}header{margin-top:48px;padding:32px 0}@media(max-width:40rem){header{margin-top:96px;padding:32px 0 0}}header a{font-family:Lora,serif;font-size:24px;text-decoration:none;border:none}@media(min-width:40rem){header a{font-size:24px}}.row{display:flex;padding:0;width:100%}.row .column{padding:0 1rem}blockquote{margin:0 0 32px;padding:12px 24px;background:#f1f5f9;border-left:3px solid #0284c7;border-radius:0 6px 6px 0;color:#1e293b}.ad{margin-bottom:2rem}.book-page .bp-container{max-width:960px;margin:0 auto;padding:0 16px}@media(min-width:40rem){.book-page .bp-container{padding:0 32px}}.book-page h2{font-family:Lora,serif;font-size:36px;margin-top:0;margin-bottom:48px}@media(max-width:40rem){.book-page h2{font-size:30px;margin-bottom:32px}}.book-page h3{font-size:20px;margin-top:0;margin-bottom:8px;text-align:left}@media(max-width:40rem){.book-page h3{font-size:18px}}.bp-hero{background:#0f172a;color:#fff;padding:96px 0}@media(max-width:40rem){.bp-hero{padding:48px 0}}.bp-hero .bp-hero-inner{max-width:960px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:64px}@media(max-width:40rem){.bp-hero .bp-hero-inner{flex-direction:column-reverse;padding:0 16px;gap:32px}}.bp-hero .bp-hero-text{flex:1 1}.bp-hero .bp-hero-text h1{font-family:Lora,serif;font-size:60px;font-weight:700;line-height:1.1;margin:0 0 24px;color:#fff}@media(max-width:40rem){.bp-hero .bp-hero-text h1{font-size:36px;text-align:center}}.bp-hero .bp-subtitle{font-size:20px;line-height:1.7;color:#94a3b8;margin-bottom:48px}@media(max-width:40rem){.bp-hero .bp-subtitle{font-size:18px;text-align:center}}.bp-hero .bp-hero-cover{width:220px;flex-shrink:0}.bp-hero .bp-hero-cover img{border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5)}@media(max-width:40rem){.bp-hero .bp-hero-cover{width:180px}}.bp-hero-cta{display:flex;align-items:center;gap:24px}@media(max-width:40rem){.bp-hero-cta{flex-direction:column;align-items:center;gap:12px}}.bp-btn{display:inline-block;background:#38bdf8;font-weight:700;font-size:18px;padding:12px 32px;border-radius:6px;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 4px 14px rgba(56,189,248,.35)}.bp-btn,.bp-btn:hover{color:#0f172a!important}.bp-btn:hover{background:#7dd3fc;box-shadow:0 6px 20px rgba(56,189,248,.45);transform:translateY(-1px)}.bp-btn-secondary{color:#94a3b8!important;font-size:16px;font-weight:500;text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}.bp-btn-secondary:hover{color:#fff!important;border-bottom-color:#fff;box-shadow:none}.bp-features{padding:96px 0;background:#fff}@media(max-width:40rem){.bp-features{padding:48px 0}}.bp-features h2{text-align:center;color:#0f172a}.bp-features .bp-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:32px;gap:32px}@media(max-width:40rem){.bp-features .bp-feature-grid{grid-template-columns:1fr;gap:24px}}.bp-features .bp-feature{padding:24px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;transition:transform .15s,box-shadow .15s,border-color .15s}.bp-features .bp-feature:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.06);border-color:#38bdf8}.bp-features .bp-feature h3{color:#0f172a}.bp-features .bp-feature p{font-size:16px;color:#64748b;line-height:1.6;margin:0}.bp-features .bp-feature-icon{font-family:Roboto Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:24px;font-weight:700;color:#38bdf8;margin-bottom:12px}.bp-faq{padding:96px 0;background:#f8fafc}@media(max-width:40rem){.bp-faq{padding:48px 0}}.bp-faq h2{text-align:center;color:#0f172a}.bp-faq .bp-faq-list{max-width:640px;margin:0 auto}.bp-faq .bp-faq-item{margin-bottom:32px}.bp-faq .bp-faq-item h3{color:#0f172a;font-size:20px;margin-bottom:8px}.bp-faq .bp-faq-item p{color:#64748b;font-size:18px;line-height:1.7;margin:0}.bp-author{padding:64px 0;background:#fff;border-top:1px solid #e2e8f0}.bp-author .bp-author-inner{display:flex;align-items:center;gap:24px;max-width:640px;margin:0 auto}@media(max-width:40rem){.bp-author .bp-author-inner{flex-direction:column;text-align:center}}.bp-author .bp-author-avatar{width:80px;flex-shrink:0}.bp-author .bp-author-avatar img{border-radius:50%}.bp-author .bp-author-label{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:600;margin-bottom:8px!important}.bp-author .bp-author-text p{font-size:16px;color:#64748b;line-height:1.6;margin:0}.bp-author .bp-author-text p.bp-author-label{margin-bottom:8px!important}.bp-bottom-cta{padding:96px 0;background:#0f172a;text-align:center}@media(max-width:40rem){.bp-bottom-cta{padding:48px 0}}.bp-bottom-cta h2{color:#fff;text-align:center}.bp-bottom-cta .bp-hero-cta{justify-content:center}.promo{padding:48px 32px;margin-top:48px;background:#0f172a;border-radius:10px;color:#e2e8f0}.promo h1{color:#fff;font-size:30px;margin:0 0 12px}.promo p{font-size:18px;line-height:1.7;color:#94a3b8;margin-bottom:16px}.promo .ava{width:192px}.promo .ava img{width:100%;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.45)}.promo .body{margin-left:32px;flex:1 1}.promo .row{display:flex;align-items:center}@media(max-width:40rem){.promo{align-items:center}.promo .ava{margin-bottom:12px;margin-left:12px;margin-right:12px;align-self:center;width:256px}.promo .ava img{width:100%}.promo h1{display:none}.promo .row,.promo .row .body{flex-direction:column;display:flex;align-items:center;justify-content:center}.promo .row .body{margin-left:0;text-align:center}}.abtn{font-size:18px;font-weight:700;padding:0 3rem;text-transform:uppercase;margin-top:0;background-color:#38bdf8;border-radius:6px;display:inline-block;line-height:48px;box-shadow:0 4px 14px rgba(56,189,248,.35);transition:background-color .15s,transform .15s,box-shadow .15s}.abtn,.abtn:focus,.abtn:hover{color:#0f172a!important;border-bottom:0}.abtn:focus,.abtn:hover{background-color:#7dd3fc;transform:translateY(-1px);box-shadow:0 6px 20px rgba(56,189,248,.45)}ul.features{display:flex;align-items:top;justify-content:space-between;flex-wrap:wrap}ul.features li{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;width:256px;height:256px;background-color:#f1f5f9;border-radius:50%;padding:24px;margin-bottom:32px;border:1px solid #e2e8f0;overflow:hidden}ul.features li span{font-size:48px;margin-bottom:8px}ul.features li:before{content:""}@media(max-width:40rem){ul.features{align-items:center;justify-content:center}ul.features li{width:192px;height:192px}ul.features li span{font-size:30px}ul.features li{font-size:16px}}.faq h3{margin-bottom:12px}.faq h3:first-child{margin-top:24px}.faq p{margin-bottom:64px!important}@media(max-width:40rem){.faq p{margin-bottom:64px!important}}.newsletter{margin-top:64px;padding:64px 32px;background:#0f172a;border-radius:10px}.newsletter .newsletter-inner{max-width:640px;margin:0 auto;text-align:center}.newsletter .newsletter-title{color:#fff;font-family:Lora,serif;font-size:30px;font-weight:700;line-height:1.2;margin:0 0 12px}@media(max-width:40rem){.newsletter .newsletter-title{font-size:24px}}.newsletter .newsletter-subtitle{color:#94a3b8;font-size:16px;margin:0 0 24px;line-height:1.5}.newsletter form label{display:block;font-size:14px;color:#94a3b8;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.newsletter .newsletter-row{display:flex;gap:8px;max-width:480px;margin:0 auto}@media(max-width:40rem){.newsletter .newsletter-row{flex-direction:column;gap:12px}}.newsletter input[type=email]{flex:1 1;font-family:inherit;font-size:16px;padding:12px 16px;border:1px solid #334155;border-radius:6px;background:#1e293b;color:#e2e8f0;outline:none;transition:border-color .15s,box-shadow .15s;min-width:0}.newsletter input[type=email]::placeholder{color:#64748b}.newsletter input[type=email]:focus{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.2)}.newsletter input[type=submit]{font-family:inherit;font-size:16px;font-weight:700;text-transform:uppercase;color:#0f172a;background-color:#38bdf8;border:none;border-radius:6px;padding:12px 24px;cursor:pointer;transition:background-color .15s,transform .15s}.newsletter input[type=submit]:focus,.newsletter input[type=submit]:hover{background-color:#7dd3fc;transform:translateY(-1px)}.newsletter .newsletter-powered{font-size:14px;color:#64748b;margin:16px 0 0}.newsletter .newsletter-powered a{color:#94a3b8;font-weight:400}.article-page main,.landing-page main{max-width:none;width:100%}.head{padding:24px 32px;background:#0f172a;background-image:linear-gradient(180deg,#131d35,#0f172a);border-bottom:1px solid #334155}.head h1{text-align:center!important;color:#f8fafc;font-family:Roboto Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-weight:700;font-size:30px;letter-spacing:-.02em;margin-bottom:12px}.head h1:before{content:"$ ";color:#38bdf8;font-weight:700}.head ul,.head ul.links{margin-top:8px;margin-bottom:8px;font-size:16px;color:#94a3b8;display:flex;gap:12px;justify-content:center;align-items:center;padding-left:0}.head ul li,.head ul.links li{margin-bottom:0;font-size:16px}.head ul li:before,.head ul.links li:before{content:"";margin-right:0}.head ul a,.head ul.links a{color:#94a3b8;font-weight:500;font-family:Roboto Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:14px;padding:4px 12px;border-radius:6px;box-shadow:none;transition:color .15s,background .15s}.head ul a:hover,.head ul.links a:hover{color:#38bdf8;background:hsla(0,0%,100%,.06);box-shadow:none}aside{width:192px;padding:32px;border-left:1px solid #e2e8f0}@media(max-width:40rem){aside{width:100%;border-left:none}aside .aside-inner{display:flex;flex-direction:column;align-items:center;gap:8px}aside .author{margin-top:24px}aside .book{padding-top:0;width:192px;margin-top:0!important}}aside .aside-inner{position:-webkit-sticky;position:sticky;top:12px}aside a{display:inline;text-align:center;font-size:16px;border-bottom:none;color:#0284c7;font-weight:400;transition:color .15s;box-shadow:none}aside a:hover{color:#0ea5e9;box-shadow:none!important}aside .book{margin-top:48px;display:flex;align-items:center;flex-direction:column}aside .book img{width:100%;border-radius:6px;box-shadow:0 4px 12px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.06)}aside .book .body{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:12px}aside .author{display:flex;align-items:center;gap:12px}aside .author img{width:32px;height:32px;object-fit:cover;display:block;border-radius:50%}aside .author .name{font-size:16px;color:#64748b}aside ul.links{margin-top:8px;padding-left:0;text-align:center;display:flex;gap:12px}aside ul.links,aside ul.links li{justify-content:center;align-items:center}aside ul.links li{font-size:16px}aside ul.links li:before{content:"";margin-right:0}.article-list{display:flex;flex-wrap:wrap;gap:24px;margin-top:32px;width:100%;justify-content:space-between}@media(max-width:40rem){.article-list{flex-direction:column}.article-list .article-preview{min-height:auto!important}}.article-list .article-preview{background:#fff;border-radius:10px;min-height:256px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:24px;box-shadow:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.08);border:1px solid #e2e8f0;flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 24px);transition:transform .15s,box-shadow .15s,border-color .15s}.article-list .article-preview:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(15,23,42,.12);border-color:#38bdf8}.article-list .article-preview a,.article-list .article-preview a:hover{box-shadow:none}.article-list .article-preview h2{font-family:Lora,serif;font-weight:700;font-size:24px;color:#0f172a;margin-top:0;margin-bottom:0;transition:color .15s}.article-list .article-preview:hover h2{color:#0284c7}.article-list .article-preview .description{margin:12px 0 0;font-size:18px;line-height:1.5;color:#64748b}@media(min-width:40rem){.article-list .article-preview .description{line-height:1.5}}.article-list .article-preview .date{display:inline-flex;align-items:center;gap:4px;font-family:Roboto Mono,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.02em;text-transform:uppercase;margin-top:auto;padding-top:12px;color:#64748b}@media(min-width:40rem){.article-list .article-preview h2{font-size:24px}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}