a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;max-width:100%;height:auto}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{padding:3px 5px;font-family:var(--font-mono);font-size:1.5rem;background:#f6f8fa;border:1px solid rgba(124,139,154,.25);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(124,139,154,.25)}@media (max-width:600px){kbd{font-size:1.3rem}}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{color:var(--color-darkgrey);font-family:var(--gh-font-body,var(--font-sans));font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#daf2fd}::selection{text-shadow:none;background:#daf2fd}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #f0f0f0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}::not(.gh-content) blockquote,::not(.gh-content) dl,::not(.gh-content) ol,::not(.gh-content) p,::not(.gh-content) ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0}ol,ul{max-width:100%}li{padding-left:.3em;line-height:1.6em}li+li{margin-top:.5em}dt{float:left;margin:0 20px 0 0;width:120px;color:#daf2fd;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}sub,sup{line-height:1}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:#daf2fd}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#15171a;text-decoration:none}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-family:var(--gh-font-heading,var(--font-sans));font-weight:600;text-rendering:optimizeLegibility;letter-spacing:-.01em}h1{margin:0 0 .5em;font-size:4.8rem;font-weight:700;letter-spacing:-.015em}@media (max-width:600px){h1{font-size:2.8rem}}h2{margin:1.5em 0 .5em;font-size:2.8rem;font-weight:700}@media (max-width:600px){h2{font-size:2.3rem}}h3{margin:1.5em 0 .5em;font-size:2.4rem;font-weight:600}@media (max-width:600px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:600px){h4{font-size:1.7rem}}h5{font-size:2rem}h5,h6{margin:1.5em 0 .5em}h6{font-size:1.8rem}:root{--color-green:#a4d037;--color-yellow:#fecd35;--color-red:#f05230;--color-darkgrey:#15171a;--color-midgrey:#738a94;--color-lightgrey:#f1f1f1;--color-secondary-text:#979797;--color-border:#e1e1e1;--color-wash:#e5eff5;--color-darkmode:#151719;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-serif:Georgia,Times,serif;--font-mono:Menlo,Courier,monospace}.viewport{position:relative;display:flex;flex-direction:column;min-height:100vh}.site-content{flex-grow:1}.outer{position:relative;padding:0 max(4vmin,20px)}.inner{margin:0 auto;max-width:1200px;width:100%}.site-header{position:relative;color:#fff;background:var(--ghost-accent-color)}.site-header-cover{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.site-header-content{position:relative;z-index:100;display:flex;align-items:center;padding-top:calc(19vmin + 44px);padding-bottom:19vmin;text-align:center;color:var(--color-darkgrey)}.has-cover .site-header-content{min-height:560px;background-color:var(--ghost-accent-color);color:#fff}.site-header-content.left-aligned{padding-bottom:0;text-align:left}.has-cover .site-header-content.left-aligned{align-items:flex-end;padding-bottom:max(4vmin,32px)}.site-header-content.no-content{padding-top:0;padding-bottom:2vmin}.site-header-inner{position:relative}.site-header-content.left-aligned .site-header-inner{align-items:flex-start}.site-logo{flex-shrink:0;margin:0 auto;max-height:120px}.site-header-content.left-aligned .site-logo{margin-right:auto;margin-left:0;max-height:96px}.site-title{z-index:10;margin:0;padding:0;font-size:5rem;font-weight:800}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .site-title{font-family:var(--gh-font-heading,var(--font-serif))}.has-cover .site-title{font-size:6rem}.site-header-content.left-aligned .site-title{font-size:4.4rem}.has-cover .site-header-content.left-aligned .site-title{font-size:4.6rem}.site-description{display:inline-block;z-index:10;max-width:960px;font-size:6rem;font-weight:700;line-height:1.1}.site-description:first-child{font-family:var(--gh-font-heading,var(--font-sans))}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .site-description:first-child{font-family:var(--gh-font-heading,var(--font-serif))}:is(.site-logo,.site-title)+.site-description{max-width:640px;margin-top:16px;font-size:2.4rem;font-weight:400;line-height:1.4}.site-logo+.site-description{margin-top:20px}.site-title+.site-description{color:var(--color-secondary-text)}.has-cover .site-description{letter-spacing:-.005em;color:#fff}.has-cover :is(.site-logo,.site-title)+.site-description{font-size:2.4rem}.has-cover .site-header-content.left-aligned :is(.site-logo,.site-title)+.site-description{font-size:2.2rem}@media (min-width:992px){.is-head-stacked.has-cover .site-header-content{padding-top:calc(19vmin + 120px)}}@media (max-width:991px){.site-header-content{padding-top:calc(19vmin + 32px)}}@media (max-width:767px){.has-cover .site-header-content{min-height:240px}.site-header-inner{gap:16px}.site-logo{max-width:60%}.site-title{font-size:3.4rem!important}.site-description{font-size:2.2rem!important}.site-logo+.site-description,.site-title+.site-description{margin-top:12px!important}}.gh-head{height:88px;font-size:1.6rem;line-height:1.3em;background-color:#fff;z-index:150}.has-cover:not(.home-template) .gh-head{background-color:var(--ghost-accent-color);color:#fff}:is(.home-template,.paged:not(.tag-template):not(.author-template)).has-cover .gh-head{position:absolute;top:0;right:0;left:0;z-index:2000;background-color:transparent;color:#fff}.gh-head a{text-decoration:none}.gh-head-inner{display:grid;-moz-column-gap:40px;column-gap:40px;grid-auto-flow:row dense;align-items:center;height:100%}.gh-head-inner,.is-head-left-logo .gh-head-inner{grid-template-columns:auto 1fr auto}.is-head-left-logo.home-template .gh-head:not(.is-header-hidden) .gh-head-logo{display:none}.is-head-left-logo.home-template .gh-head:not(.is-header-hidden) .gh-head-menu{margin-left:-40px}@media (min-width:992px){.is-head-left-logo .gh-head-menu{margin-right:64px;margin-left:16px}}.is-head-middle-logo .gh-head-inner{grid-template-columns:1fr auto 1fr}.is-head-middle-logo .gh-head-brand{grid-column-start:2}@media (min-width:992px){.is-head-middle-logo .gh-head-menu{margin-right:64px}}.is-head-stacked .gh-head{height:auto}.is-head-stacked .gh-head-inner{grid-template-columns:1fr auto 1fr}.is-head-stacked .gh-head-brand{grid-row-start:1;grid-column-start:2}@media (min-width:992px){.is-head-stacked .gh-head-inner{padding:0}.is-head-stacked .gh-head-brand{position:relative;display:flex;align-items:center;height:80px}.is-head-stacked .gh-head-menu{grid-row-start:2;grid-column:1/4;justify-content:center;height:56px;margin:0 48px}.is-head-stacked .gh-head-menu:after,.is-head-stacked .gh-head-menu:before{position:absolute;top:80px;left:0;width:100%;height:1px;content:"";background-color:var(--color-lightgrey)}.is-head-stacked.has-cover .gh-head-menu:after,.is-head-stacked.has-cover .gh-head-menu:before{background-color:hsla(0,0%,100%,.2)}.is-head-stacked .gh-head-menu:after{top:136px}.is-head-stacked .gh-head-actions{grid-row-start:1;grid-column:1/4;justify-content:space-between}}.gh-head-brand{display:flex;align-items:center;height:40px;word-break:break-all}.gh-head-logo{display:block;font-family:var(--gh-font-heading,var(--font-sans));font-weight:800;font-size:2.6rem;letter-spacing:-.02em;color:inherit;white-space:nowrap}.gh-head-logo.no-image{margin-top:-5px}.has-cover .gh-head-logo{color:#fff}.gh-head-logo img{max-height:40px}.gh-head-menu{display:flex;align-items:center;margin-top:1px;font-weight:500}.gh-head-menu .nav{display:inline-flex;align-items:center;flex-wrap:wrap;gap:32px;list-style:none;margin:0;padding:0}.gh-head-menu .nav li{margin:0;padding:0}.gh-head-menu .nav a{display:inline-block;line-height:1.7;color:inherit}.gh-head-menu .nav a:hover{opacity:.9}.gh-head-menu .nav-more-toggle{position:relative;width:30px;height:30px;margin:0 -6px;padding:0;font-size:inherit;background-color:transparent;text-transform:inherit}.gh-head-menu .nav-more-toggle svg{width:24px;height:24px}@media (min-width:992px){body:not(.is-dropdown-loaded) .gh-head-menu .nav>li{opacity:0}}.gh-dropdown{position:absolute;top:100%;right:-16px;z-index:90;width:200px;padding:12px 0;margin-top:24px;opacity:0;visibility:hidden;text-align:left;background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 7px 20px -5px rgba(0,0,0,.15);transform:translate3d(0,6px,0);transition:opacity .3s,transform .2s}.is-head-middle-logo .gh-dropdown{right:auto;left:-24px}.is-dropdown-mega .gh-dropdown{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;-moz-column-gap:40px;column-gap:40px;min-width:320px;padding:20px 32px}.is-dropdown-open .gh-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.gh-head-menu .gh-dropdown li a{display:block;padding:6px 20px;color:#15171a}.is-dropdown-mega .gh-dropdown li a{padding:8px 0}.gh-social{display:flex;align-items:center;gap:20px}.gh-social-link{line-height:0;color:inherit}.gh-social-link:hover{opacity:.9}.gh-social-link svg{width:18px;height:18px}.gh-head-actions{display:flex;justify-content:flex-end;align-items:center;gap:24px;list-style:none;text-align:right}.gh-head-members{display:flex;gap:20px;align-items:center}.gh-head-link{font-weight:500;color:inherit}.gh-head-button{display:inline-flex;justify-content:center;align-items:center;padding:8px 20px;height:44px;font-weight:600;letter-spacing:-.005em;font-size:1.6rem;border-radius:48px;color:#fff;background:var(--ghost-accent-color)}.has-cover .gh-head-button{color:var(--color-darkgrey);background:#fff}@media (max-width:767px){.gh-head-members{flex-direction:column-reverse;gap:16px;width:100%}}.gh-search{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;cursor:pointer;background-color:transparent;border:0;outline:none}.gh-search:hover{opacity:.9}.gh-head-brand .gh-search{margin-right:8px}.gh-head-actions .gh-search{margin-right:-4px}@media (max-width:767px){.gh-head-actions .gh-search{display:none}}@media (min-width:768px){.gh-head-brand .gh-search{display:none}}.gh-burger{position:relative;display:none;width:30px;height:30px;padding:0;margin-right:-3px;cursor:pointer;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gh-burger:after,.gh-burger:before{position:absolute;left:3px;width:24px;height:1px;content:"";background-color:var(--color-darkgrey);transition:all .2s cubic-bezier(.04,.04,.12,.96) .1008s}.has-cover .gh-burger:after,.has-cover .gh-burger:before{background-color:#fff}.gh-burger:before{top:11px}.gh-burger:after{bottom:11px}.gh-head-open .gh-burger:before{top:15px;transform:rotate(45deg)}.gh-head-open .gh-burger:after{bottom:14px;transform:rotate(-45deg)}@media (max-width:767px){#gh-head{height:64px}#gh-head .gh-head-inner{grid-template-rows:auto 1fr auto;grid-template-columns:1fr;gap:48px}#gh-head .gh-head-brand{display:grid;grid-template-columns:1fr auto auto;grid-column-start:1;align-items:center;height:64px}#gh-head .gh-head-logo{font-size:2.2rem}#gh-head .gh-head-brand .gh-search{margin-left:-6px}#gh-head .gh-burger{display:block}#gh-head .gh-head-actions,#gh-head .gh-head-menu{position:fixed;justify-content:center;visibility:hidden;opacity:0}#gh-head .gh-head-menu{margin:0;transition:none;transform:translateY(0)}#gh-head .nav{gap:16px;align-items:center;line-height:1.4}#gh-head .nav a{font-size:2.6rem;font-weight:600;text-transform:none}#gh-head .nav li{opacity:0;transform:translateY(-4px)}#gh-head :is(.gh-head-button,.gh-head-link){opacity:0;transform:translateY(8px)}#gh-head .gh-head-button{width:100%;font-size:1.8rem;text-transform:none;opacity:0;transform:translateY(8px)}.gh-head-open #gh-head{position:fixed;inset:0;z-index:3999999;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}.gh-head-open.has-cover #gh-head,.gh-head-open.has-cover #gh-head .gh-head-actions{background-color:var(--ghost-accent-color)}.gh-head-open #gh-head .gh-head-actions,.gh-head-open #gh-head .gh-head-menu{position:static;visibility:visible;opacity:1}.gh-head-open #gh-head .nav{display:flex;flex-direction:column}.gh-head-open #gh-head .nav li{opacity:1;transition:transform .2s,opacity .2s;transform:translateY(0)}.gh-head-open #gh-head .gh-head-actions{position:sticky;right:0;bottom:0;left:0;display:inline-flex;flex-direction:column;gap:12px;align-items:center;padding:max(4vmin,20px) 0 max(4vmin,28px);background-color:#fff}.gh-head-open #gh-head :is(.gh-head-button,.gh-head-link){opacity:1;transition:transform .4s,opacity .4s;transition-delay:.2s;transform:translateY(0)}.gh-head-open #gh-head .gh-head-link{transition-delay:.4s}}.post-feed{position:relative;display:grid;gap:4.8vmin 4vmin;grid-template-columns:repeat(6,1fr);padding:max(4.8vmin,36px) 0 0}:is(.tag-template,.author-template) .post-feed{margin-top:4vmin}@media (max-width:991px){.post-feed{grid-template-columns:1fr 1fr}}@media (max-width:767px){.post-feed{grid-template-columns:1fr;grid-gap:40px}}.post-card{position:relative;grid-column:span 2;display:flex;flex-direction:column;background-size:cover;word-break:break-word}.post-card-image-link{position:relative;overflow:hidden;display:block;margin-bottom:32px}.post-card-image-link:after{content:"";display:block;padding-bottom:55%}.post-card[class*=post-access-] .post-card-image-link:after{background-color:rgba(0,0,0,.5);backdrop-filter:blur(3px)}.post-card.keep-ratio[class*=post-access-] .post-card-image-link:after{position:absolute;inset:0;padding-bottom:0}.post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image-link:after{padding-bottom:0}.post-card-image{position:absolute;inset:0;width:100%;height:100%;background:var(--color-lightgrey) no-repeat center center;-o-object-fit:cover;object-fit:cover}.post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image{position:static}.post-card-access{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:4px;font-size:1.5rem;font-weight:600;color:#fff}.post-card-content-link{position:relative;display:block;color:var(--color-darkgrey)}.post-card-content-link:hover{text-decoration:none}.post-feed .no-image .post-card-content-link{padding:0}.no-image .post-card-header{margin-top:0}.post-card-tags{display:flex;align-items:center;gap:12px;margin:0 0 10px;color:var(--color-secondary-text);font-size:1.4rem;font-weight:600;letter-spacing:-.005em;line-height:1}.post-card-featured{position:relative;display:flex;align-items:center;gap:3px;padding-left:18px;color:var(--ghost-accent-color)}.post-card-featured svg{position:absolute;left:0}.post-card-title{margin:0;font-size:2.6rem;font-weight:800;line-height:1.2}.post-card-content-link:hover .post-card-title{opacity:.9}.no-image .post-card-title{margin-top:0}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .post-card-title{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.005em}.post-card-title svg{margin-top:-3px;margin-left:-1px}.post-card-content{flex-grow:1;display:flex;flex-direction:column}.post-card-excerpt{display:-webkit-box;overflow-y:hidden;margin-top:12px;max-width:720px;font-size:1.6rem;line-height:1.5;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .post-card-excerpt{font-family:var(--gh-font-body,var(--font-sans))}.post-card:not(.post-card-large):not(.post-card-full):not(.dynamic):not(.no-image) .post-card-excerpt{-webkit-line-clamp:2}:is(.tag-template,.author-template) .post-card-excerpt{margin-top:6px}:is(.tag-template,.author-template) .post-card-large .post-card-excerpt{display:block;overflow-y:auto}.post-card-meta{margin-top:12px;padding:0;font-size:1.3rem;color:var(--color-secondary-text)}.post-card-meta,.post-card-meta>*{display:flex;align-items:center;gap:6px}.post-card-meta>*+:not(script):before{width:2px;height:2px;content:"";background-color:var(--color-secondary-text);border-radius:50%}.post-card-meta .sep{margin:0 4px}.author-profile-image{display:block;width:100%;height:100%;background:#1a1a1a;border-radius:100%;-o-object-fit:cover;object-fit:cover}.author-list{display:flex;margin:0 0 0 4px;padding:0;list-style:none}.author-list-item{position:relative;flex-shrink:0;margin:0;padding:0}@media (min-width:1001px){.post-card-large{grid-column:span 6;display:grid;grid-gap:4vmin;grid-template-columns:repeat(3,1fr);border-top:0}.post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-card-large .post-card-image-link{position:relative;grid-column:span 2;margin-bottom:0}.post-card-large .post-card-content{grid-column:span 1}.post-card-large.no-image .post-card-content{grid-column:span 2}.post-card-large .post-card-image{position:absolute;width:100%;height:100%}.post-card-large .post-card-tags{margin-bottom:12px}.post-card-large .post-card-title{margin-top:0;font-size:4.4rem;line-height:1.05}.post-card-large .post-card-excerpt{margin-top:16px}.post-card-full{grid-column:span 6}.post-card-full .post-card-image-link{margin-bottom:40px}.post-card-full .post-card-tags{margin-bottom:14px}.post-card-full .post-card-title{font-size:6.4rem;line-height:.95}.post-card-full .post-card-excerpt{margin-top:20px;font-size:1.8rem}.post-card-large+.post-card-large:nth-child(2n){margin:32px 0}.post-card-large+.post-card-large:nth-child(2n) .post-card-content{order:-1}.post-card.dynamic{grid-column:span 3}.post-card.dynamic .post-card-title{font-size:3rem}}.pagination{display:none;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:8vmin}html.no-infinite-scroll .pagination{display:grid}.pagination a{font-size:1.7rem;font-weight:600}.pagination .page-number{grid-column-start:2;color:var(--color-secondary-text)}.pagination .older-posts{grid-column-start:3;text-align:right}@media (max-width:767px){.pagination .page-number{display:none}}.article{word-break:break-word}.post-template .article{padding:max(8vmin,40px) 0 max(8vmin,64px)}.post-template .article-header{padding:0 0 max(6.4vmin,40px)}.page-template .article-header{padding:max(12vmin,64px) 0 max(3.2vmin,28px)}.article-tag{margin-bottom:16px;font-size:1.6rem}.article-tag a{color:var(--color-secondary-text)}.article-title{margin-bottom:0;font-size:clamp(3.2rem,5vw,5.2rem);font-weight:800;line-height:1.05;color:var(--color-darkgrey)}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .article-title{font-family:var(--gh-font-heading,var(--font-serif))}.article-excerpt{margin-top:20px;max-width:720px;font-size:2rem;line-height:1.45;color:var(--color-darkgrey)}.gh-canvas .article-image{grid-column:wide-start/wide-end;width:100%;margin:max(6.4vmin,40px) 0 0}.image-full .article-image{grid-column:full-start/full-end}.image-small .article-image{grid-column:main-start/main-end}.gh-canvas .article-image img{display:block;margin-left:auto;margin-right:auto;width:100%}@media (max-width:767px){.article-excerpt{margin-top:14px;font-size:1.7rem}}.gh-canvas,.kg-width-full.kg-content-wide{--gap:max(4vmin,20px);--main:min(var(--content-width,720px),100% - var(--gap) * 2);--wide:minmax(0,calc((var(--container-width, 1200px) - var(--content-width, 720px))/2));--full:minmax(var(--gap),1fr);display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end]}.gh-canvas>*{grid-column:main-start/main-end}.kg-content-wide>div,.kg-width-wide{grid-column:wide-start/wide-end}.kg-width-full{grid-column:full-start/full-end}.kg-width-full img{width:100%}.gh-content>*+*{margin-top:max(3.2vmin,24px);margin-bottom:0}.gh-content>.kg-width-full+.kg-width-full:not(.kg-width-full.kg-card-hascaption+.kg-width-full){margin-top:0}.gh-content>[id]{margin:0;color:var(--color-darkgrey)}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-content>[id]{font-family:var(--gh-font-heading,var(--font-serif))}.gh-content>[id]:not(:first-child){margin:2em 0 0}.gh-content>[id]+*{margin-top:1.5rem!important}.gh-content>blockquote,.gh-content>hr{position:relative;margin-top:max(4.8vmin,32px)}.gh-content>blockquote+*,.gh-content>hr+*{margin-top:max(4.8vmin,32px)!important}.gh-content a{color:var(--ghost-accent-color);text-decoration:underline;word-break:break-word}.gh-content>blockquote:not([class]),.gh-content>dl,.gh-content>ol,.gh-content>p,.gh-content>ul{font-family:var(--gh-font-body,var(--font-serif));font-weight:400;font-size:2rem;line-height:1.6em}.gh-content>p img{margin:0 auto}.page-template .gh-content:only-child>:first-child:not(.kg-width-full){margin-top:max(12vmin,64px)}.page-template .gh-content>:last-child:not(.kg-width-full){margin-bottom:max(12vmin,64px)}.gh-content .kg-callout-card .kg-callout-text,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>p,.gh-content .kg-toggle-card .kg-toggle-content>ul{font-family:var(--font-serif);font-weight:400;font-size:1.9rem;line-height:1.6em}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>p,.gh-content .kg-product-card .kg-product-card-description>ul{font-size:1.7rem;line-height:1.6em}.gh-content .kg-callout-card .kg-callout-emoji{font-size:2.1rem;line-height:1.4em}.gh-content .kg-toggle-card .kg-toggle-heading-text{font-size:2rem}.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-callout-card .kg-callout-text,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-card .kg-toggle-content>ol,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-card .kg-toggle-content>p,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-card .kg-toggle-content>ul,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>blockquote,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>dl,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ol,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>p,.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ul{font-family:var(--gh-font-body,var(--font-sans))}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>ul,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>ul,.gh-content>dl,.gh-content>ol,.gh-content>ul{padding-left:1.9em}.gh-content>blockquote:not([class]){position:relative;font-style:italic;padding:0}.gh-content>blockquote:not([class]):before{content:"";position:absolute;left:-1.5em;top:0;bottom:0;width:.3rem;background:var(--ghost-accent-color)}.gh-content :not(pre)>code{vertical-align:middle;padding:.15em .4em;border:1px solid #e1eaef;font-weight:400!important;font-size:.9em;line-height:1em;color:#15171a;background:#f0f6f9;border-radius:.25em}.gh-content pre{overflow:auto;padding:16px 20px;color:var(--color-wash);font-size:1.4rem;line-height:1.5em;background:var(--color-darkgrey);border-radius:5px;box-shadow:0 2px 6px -2px rgba(0,0,0,.1),0 0 1px rgba(0,0,0,.4)}.gh-content ol ol li{list-style-type:lower-alpha}.gh-content ol ol ol li{list-style-type:lower-roman}@media (max-width:650px){.gh-content .kg-callout-card .kg-callout-text,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>p,.gh-content .kg-toggle-card .kg-toggle-content>ul,.gh-content>blockquote:not([class]),.gh-content>dl,.gh-content>ol,.gh-content>p,.gh-content>ul{font-size:1.8rem}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>p,.gh-content .kg-product-card .kg-product-card-description>ul{font-size:1.6rem}.gh-content blockquote:not([class]):before{left:min(-4vmin,-20px)}}.gh-content .kg-card+:not(.kg-card),.gh-content :not(.kg-card):not([id])+.kg-card{margin-top:6vmin}.kg-embed-card{display:flex;flex-direction:column;align-items:center;width:100%}.gh-content iframe[src*="kickstarter.com"],.gh-content iframe[src*="player.vimeo.com"],.gh-content iframe[src*="youtube-nocookie.com"],.gh-content iframe[src*="youtube.com"],.kg-embed-card iframe[src*="kickstarter.com"],.kg-embed-card iframe[src*="player.vimeo.com"],.kg-embed-card iframe[src*="youtube-nocookie.com"],.kg-embed-card iframe[src*="youtube.com"]{aspect-ratio:16/9;width:100%;height:auto}.kg-image-card img{margin:auto}.kg-gallery-image,.kg-image[width][height]{cursor:pointer}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-toggle-card .kg-toggle-heading-text{font-family:var(--gh-font-heading,var(--font-serif))}.gh-content .kg-callout-card-accent a{text-decoration:underline}.kg-blockquote-alt{font-family:var(--font-serif);color:var(--color-midgrey)}.has-sans-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-blockquote-alt{font-family:var(--gh-font-body,var(--font-sans))}.kg-card.kg-header-card.kg-style-dark{background:var(--color-darkgrey)}.kg-header-card.kg-style-light h2.kg-header-card-header{color:#000}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-header-card h2.kg-header-card-header{font-family:var(--gh-font-heading,var(--font-serif))}figcaption{padding:1.5rem 1.5rem 0;text-align:center;color:rgba(0,0,0,.5);font-size:1.3rem;line-height:1.4em}figcaption strong{color:rgba(0,0,0,.8)}figcaption a{text-decoration:underline}iframe.instagram-media{margin:6vmin auto 0!important}iframe.instagram-media+script+:not([id]){margin-top:6vmin}.kg-width-full.kg-card-hascaption{display:grid;grid-template-columns:inherit}.kg-width-wide.kg-card-hascaption img{grid-column:wide-start/wide-end}.kg-width-full.kg-card-hascaption img{grid-column:1/-1}.kg-width-full.kg-card-hascaption figcaption{grid-column:main-start/main-end}.article-comments{margin:6vmin 0 0}.footnotes-sep{margin-bottom:30px}.footnotes{font-size:1.5rem}.footnotes p{margin:0}.footnote-backref{font-size:1.2rem;font-weight:700;text-decoration:none!important;box-shadow:none!important}.gh-content table:not(.gist table){display:inline-block;overflow-x:auto;max-width:100%;width:auto;border-spacing:0;border-collapse:collapse;font-family:var(--font-sans);font-size:1.6rem;white-space:nowrap;vertical-align:top;-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at left,rgba(0,0,0,.2) 0,transparent 75%) 0,radial-gradient(ellipse at right,rgba(0,0,0,.2) 0,transparent 75%) 100%;background-attachment:scroll,scroll;background-size:10px 100%,10px 100%;background-repeat:no-repeat}.gh-content table:not(.gist table) td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-size:20px 100%;background-repeat:no-repeat}.gh-content table:not(.gist table) td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-size:20px 100%;background-repeat:no-repeat}.gh-content table:not(.gist table) th{color:var(--color-darkgrey);font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase;background-color:#f4f8fb}.gh-content table:not(.gist table) td,.gh-content table:not(.gist table) th{padding:6px 12px;border:1px solid #e3edf3}.article-byline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:min(24px,5.6vmin) 0 0}.gh-button-share{display:inline-flex;align-items:center;flex-shrink:0;padding:.5em 1.2em;font-size:1.4rem;font-weight:600;border:1px solid rgba(0,0,0,.15);border-radius:999px;color:rgba(0,0,0,.85);background:transparent;cursor:pointer;transition:all .4s ease;white-space:nowrap;text-decoration:none}.gh-button-share:hover{border-color:rgba(0,0,0,.5)}html.dark-mode .gh-button-share{color:hsla(0,0%,100%,.85);border-color:hsla(0,0%,100%,.15)}html.dark-mode .gh-button-share:hover{border-color:hsla(0,0%,100%,.5)}.article-byline-content{flex-grow:1;display:flex;align-items:center}.article-byline-content .author-list{justify-content:flex-start;padding:0 14px 0 0}.article-byline-meta{color:var(--color-secondary-text);font-size:1.4rem;line-height:1.2em}.article-byline-meta .author-name{margin:0 0 6px;font-size:1.7rem;font-weight:700;letter-spacing:0}.article-byline-meta .bull{display:inline-block;margin:0 2px}.author-avatar{display:block;overflow:hidden;margin:0 -4px;width:min(56px,13.6vmin);height:min(56px,13.6vmin);border:2px solid #fff;border-radius:50%;background-color:var(--color-border)}.page-template .article-title{margin-bottom:0}@media (max-width:767px){.article-byline-content{flex-direction:column;align-items:flex-start;gap:16px}.article-byline-content .author-list{padding-right:12px}.article-byline-meta .author-name{margin-bottom:4px}}.footer-cta{position:relative;text-align:center}.footer-cta-title{margin:0 0 min(24px,6.4vmin);font-size:clamp(2.6rem,5vw,3.8rem);font-weight:800}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .footer-cta-title{font-family:var(--gh-font-heading,var(--font-serif))}.footer-cta-button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:100%;max-width:500px;padding:5px 5px 5px 15px;font-size:1.7rem;color:var(--color-secondary-text);background:#fff;border:1px solid var(--color-border);border-radius:8px;transition:border-color .2s}.footer-cta-button:hover{border-color:#000}.footer-cta-button span{display:inline-block;padding:9px 15px;color:#fff;font-size:1.6rem;font-weight:600;letter-spacing:-.005em;background:var(--ghost-accent-color);border-radius:6px}.read-more-wrap{margin-top:2.4vmin}.footer-cta+.read-more-wrap{margin-top:max(12vmin,72px)}.read-more{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:4vmin}.read-more .post-card-tags{display:none}@media (max-width:1000px){.read-more{grid-template-columns:repeat(4,1fr)}.read-more .post-card:nth-child(3){display:none}}@media (max-width:700px){.read-more{grid-template-columns:repeat(2,1fr)}.read-more .post-card:nth-child(2){display:none}}.comments{display:flex;flex-direction:column;align-items:center;margin:60px 0 44px}.comments-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px;width:100%;max-width:720px}.comments h2{width:100%;max-width:720px;font-weight:800;font-size:3.4rem}.comments .comment-count{color:var(--color-midgrey);font-weight:600;white-space:nowrap}.comments #ghost-comments-root{width:100%;max-width:720px}.author-profile-pic{display:block;width:80px;height:80px;-o-object-fit:cover;object-fit:cover;margin:0 0 2rem;background:#1a1a1a;border-radius:50%}.author-profile-footer{margin-top:16px}.author-profile-location{font-weight:700}.author-profile-meta{display:flex;gap:12px}.author-profile-social-link{font-size:1.3rem;color:var(--color-secondary-text)}.author-profile-social-link:hover{color:var(--color-darkgrey)}.author-profile-social-link svg{width:16px;height:16px}@media (min-width:1001px){.author-template .post-card-large .post-card-content:only-child{grid-column:span 2;max-width:640px}}.tag-template .post-card-large .post-card-image-link{grid-column:2/span 2;order:2}.tag-template .post-card-large .post-card-content{order:1}@media (min-width:1001px){.tag-template .post-card-large .post-card-content:only-child{grid-column:span 2;max-width:640px}}.error-content{padding:14vw 4vw 2vw}.error-message{padding-bottom:10vw;text-align:center}.error-code{margin:0;font-size:12vw;line-height:1em;letter-spacing:-5px}.error-description{margin:0;color:var(--color-secondary-text);font-size:3.2rem;line-height:1.3em;letter-spacing:-.005em;font-weight:400}.error-link{display:inline-block;margin-top:5px}@media (min-width:940px){.error-content .post-card{margin-bottom:0;padding-bottom:0;border-bottom:none}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:11.2rem}.error-message{padding-bottom:16vw}.error-description{margin:5px 0 0;font-size:1.8rem}}@media (max-width:500px){.error-content{padding-top:28vw}.error-message{padding-bottom:14vw}}.site-footer{position:relative;margin:max(12vmin,64px) 0 0;padding-top:48px;padding-bottom:140px;color:#fff;background:#000}.page-template .site-footer{margin-top:0}.site-footer .inner{display:grid;grid-gap:40px;grid-template-columns:auto 1fr auto;align-items:center;color:hsla(0,0%,100%,.7);font-size:1.3rem}.site-footer-center{display:flex;flex-direction:column;align-items:center;gap:16px}.site-footer-social-links{display:flex;gap:20px}.site-footer-social-links a{display:inline-flex}.site-footer-social-links svg{width:16px;height:16px}.site-footer .copyright a{color:#fff;letter-spacing:-.015em;font-weight:500}.site-footer a{color:hsla(0,0%,100%,.7)}.site-footer a:hover{color:#fff;text-decoration:none}.site-footer-nav ul{display:flex;justify-content:center;flex-wrap:wrap;margin:0;padding:0;list-style:none}.site-footer-nav li{display:inline-flex;align-items:center;padding:0;margin:0;line-height:2em}.site-footer-nav a{position:relative;display:inline-flex;align-items:center;margin-left:10px}.site-footer-nav li:not(:first-child) a:before{content:"";display:block;width:2px;height:2px;margin:0 10px 0 0;background:#fff;border-radius:100%}@media (max-width:767px){.site-footer .inner{max-width:500px;grid-template-columns:1fr;grid-gap:0;text-align:center}.site-footer .copyright,.site-footer .copyright a{color:#fff;font-size:1.5rem}.site-footer .copyright,.site-footer-center{margin-bottom:16px}}html.dark-mode body{color:hsla(0,0%,100%,.75);background:var(--color-darkmode)}html.dark-mode img{opacity:.9}html.dark-mode kbd{background:#0c0d0e}html.dark-mode figcaption a{color:#fff}html.dark-mode body:not(.has-cover) .gh-head{background:var(--color-darkmode);color:#fff}html.dark-mode .gh-burger:after,html.dark-mode .gh-burger:before{background-color:#fff}html.dark-mode .site-header-content{color:#fff}html.dark-mode .site-header-cover{opacity:1}html.dark-mode .post-card-image{background:var(--color-darkmode)}html.dark-mode :is(.post-card-tags,.post-card-meta,.article-tag a,.byline-meta-content,.pagination .page-number){color:var(--color-secondary-text)}html.dark-mode .post-card-featured,html.dark-mode .post-card-title{color:#fff}html.dark-mode .post-card-excerpt{color:var(--color-secondary-text)}html.dark-mode .article-title,html.dark-mode .author-profile-location,html.dark-mode .author-profile-social-link:hover,html.dark-mode .pagination a{color:#fff}html.dark-mode .article-excerpt{color:var(--color-secondary-text)}html.dark-mode .post-full-image{background-color:#131416}html.dark-mode .author-avatar{border-color:var(--color-darkmode);background-color:#131416}html.dark-mode .author-profile-image{opacity:1}html.dark-mode .author-profile-image path{fill:var(--color-darkmode)}html.dark-mode .article-byline-meta .author-name a{color:#fff}html.dark-mode .no-image .author-social-link a{color:hsla(0,0%,100%,.75)}html.dark-mode .gh-content>[id]{color:hsla(0,0%,100%,.9)}html.dark-mode .gh-content pre{background:#000}html.dark-mode .gh-content :not(pre)>code{background:#0e0f11;border-color:#131416;color:var(--color-wash)}:where(html.dark-mode) .gh-content a{color:#fff}html.dark-mode .gh-content code{color:#fff;background:#000}html.dark-mode hr{border-top-color:#424242}html.dark-mode .gh-content hr:after{background:#131416;box-shadow:var(--color-darkmode) 0 0 0 5px}html.dark-mode figcaption{color:hsla(0,0%,100%,.6)}html.dark-mode .gh-content table:not(.gist table) td:first-child{background-image:linear-gradient(to right,var(--color-darkmode) 50%,rgba(21,23,25,0) 100%)}html.dark-mode .gh-content table:not(.gist table) td:last-child{background-image:linear-gradient(to left,var(--color-darkmode) 50%,rgba(21,23,25,0) 100%)}html.dark-mode .gh-content table:not(.gist table) th{color:hsla(0,0%,100%,.85);background-color:#282b2f}html.dark-mode .gh-content table:not(.gist table) td,html.dark-mode .gh-content table:not(.gist table) th{border:1px solid #282b2f}html.dark-mode .gh-content :is(input,textarea){color:#000}html.dark-mode .site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:var(--color-darkmode)}html.dark-mode .kg-header-card.kg-style-dark{background:#000}html.dark-mode .kg-header-card.kg-style-light{background:#0b0c0e}html.dark-mode .kg-header-card h2.kg-header-card-header,html.dark-mode .kg-header-card h3.kg-header-card-subheader{color:#fff}html.dark-mode .kg-bookmark-card a.kg-bookmark-container,html.dark-mode .kg-bookmark-card a.kg-bookmark-container:hover{background:var(--color-darkmode)!important;color:#fff!important}html.dark-mode .footer-cta-title{color:#fff}@media (max-width:767px){html.dark-mode .gh-head-open:not(.has-cover) #gh-head,html.dark-mode .gh-head-open:not(.has-cover) #gh-head .gh-head-actions{background:var(--color-darkmode)}}@media (prefers-color-scheme:dark){html.auto-color body{color:hsla(0,0%,100%,.75);background:var(--color-darkmode)}html.auto-color img{opacity:.9}html.auto-color kbd{background:#0c0d0e}html.auto-color figcaption a{color:#fff}html.auto-color body:not(.has-cover) .gh-head{background:var(--color-darkmode);color:#fff}html.auto-color .gh-burger:after,html.auto-color .gh-burger:before{background-color:#fff}html.auto-color .site-header-content{color:#fff}html.auto-color .site-header-cover{opacity:1}html.auto-color .post-card-image{background:var(--color-darkmode)}html.auto-color :is(.post-card-tags,.post-card-meta,.article-tag a,.byline-meta-content,.pagination .page-number){color:var(--color-secondary-text)}html.auto-color .post-card-featured,html.auto-color .post-card-title{color:#fff}html.auto-color .post-card-excerpt{color:var(--color-secondary-text)}html.auto-color .article-title,html.auto-color .author-profile-location,html.auto-color .author-profile-social-link:hover,html.auto-color .pagination a{color:#fff}html.auto-color .article-excerpt{color:var(--color-secondary-text)}html.auto-color .post-full-image{background-color:#131416}html.auto-color .author-avatar{border-color:var(--color-darkmode);background-color:#131416}html.auto-color .author-profile-image{opacity:1}html.auto-color .author-profile-image path{fill:var(--color-darkmode)}html.auto-color .article-byline-meta .author-name a{color:#fff}html.auto-color .gh-button-share{color:hsla(0,0%,100%,.85);border-color:hsla(0,0%,100%,.15)}html.auto-color .gh-button-share:hover{border-color:hsla(0,0%,100%,.5)}html.auto-color .no-image .author-social-link a{color:hsla(0,0%,100%,.75)}html.auto-color .gh-content>[id]{color:hsla(0,0%,100%,.9)}html.auto-color .gh-content pre{background:#000}html.auto-color .gh-content :not(pre)>code{background:#0e0f11;border-color:#131416;color:var(--color-wash)}:where(html.auto-color) .gh-content a{color:#fff}html.auto-color .gh-content code{color:#fff;background:#000}html.auto-color hr{border-top-color:#424242}html.auto-color .gh-content hr:after{background:#131416;box-shadow:var(--color-darkmode) 0 0 0 5px}html.auto-color figcaption{color:hsla(0,0%,100%,.6)}html.auto-color .gh-content table:not(.gist table) td:first-child{background-image:linear-gradient(to right,var(--color-darkmode) 50%,rgba(21,23,25,0) 100%)}html.auto-color .gh-content table:not(.gist table) td:last-child{background-image:linear-gradient(to left,var(--color-darkmode) 50%,rgba(21,23,25,0) 100%)}html.auto-color .gh-content table:not(.gist table) th{color:hsla(0,0%,100%,.85);background-color:#282b2f}html.auto-color .gh-content table:not(.gist table) td,html.auto-color .gh-content table:not(.gist table) th{border:1px solid #282b2f}html.auto-color .gh-content :is(input,textarea){color:#000}html.auto-color .site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:var(--color-darkmode)}html.auto-color .kg-header-card.kg-style-dark{background:#000}html.auto-color .kg-header-card.kg-style-light{background:#0b0c0e}html.auto-color .kg-header-card h2.kg-header-card-header,html.auto-color .kg-header-card h3.kg-header-card-subheader{color:#fff}html.auto-color .kg-bookmark-card a.kg-bookmark-container,html.auto-color .kg-bookmark-card a.kg-bookmark-container:hover{background:var(--color-darkmode)!important;color:#fff!important}html.auto-color .footer-cta-title{color:#fff}@media (max-width:767px){html.auto-color .gh-head-open:not(.has-cover) #gh-head,html.auto-color .gh-head-open:not(.has-cover) #gh-head .gh-head-actions{background:var(--color-darkmode)}}}.pswp{position:absolute;top:0;left:0;z-index:3999999;display:none;width:100%;height:100%;overflow:hidden;touch-action:none;outline:none;backface-visibility:hidden;-webkit-text-size-adjust:100%}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:grab}.pswp--dragging .pswp__img{cursor:grabbing}.pswp__bg{background-color:rgba(0,0,0,.85);opacity:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);transform:translateZ(0);backface-visibility:hidden;will-change:opacity}.pswp__bg,.pswp__scroll-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;backface-visibility:hidden}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;width:100%;transition:transform 333ms cubic-bezier(.4,0,.22,1);transform-origin:left top}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__item{right:0;bottom:0;overflow:hidden}.pswp__img,.pswp__item{position:absolute;top:0;left:0}.pswp__img{width:auto;height:auto}.pswp__img--placeholder{backface-visibility:hidden}.pswp__img--placeholder--blank{background:#000}.pswp--ie .pswp__img{top:0;left:0;width:100%!important;height:auto!important}.pswp__error-msg{position:absolute;top:50%;left:0;width:100%;margin-top:-8px;font-size:14px;line-height:16px;color:var(--color-secondary-text);text-align:center}.pswp__error-msg a{color:var(--color-secondary-text);text-decoration:underline}.pswp__button{position:relative;display:block;float:right;width:44px;height:44px;padding:0;margin:0;overflow:visible;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background:none;border:0;box-shadow:none;transition:opacity .2s}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{outline:none;opacity:.9}.pswp__button::-moz-focus-inner{padding:0;border:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{width:44px;height:44px;background:url(../images/default-skin.png) 0 0 no-repeat;background-size:264px 88px}@media (min-resolution:1.1dppx),(min-resolution:105dpi){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url(../images/default-skin.svg)}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:none}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{display:none;background-position:-88px 0}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{position:absolute;top:50%;width:70px;height:100px;margin-top:-50px;background:none}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{position:absolute;top:35px;width:32px;height:30px;content:""}.pswp__button--arrow--left:before{left:6px;background-position:-138px -44px}.pswp__button--arrow--right:before{right:6px;background-position:-94px -44px}.pswp__counter{position:absolute;top:0;left:0;height:44px;padding:0 15px;font-size:11px;font-weight:700;line-height:44px;color:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__caption{position:absolute;bottom:0;left:0;width:100%;min-height:44px}.pswp__caption__center{max-width:420px;padding:25px 15px 30px;margin:0 auto;font-size:11px;line-height:1.6;color:#fff;text-align:center}.pswp__caption__center .post-caption-title{margin-bottom:7px;font-size:15px;font-weight:500;text-transform:uppercase}.pswp__caption__center .post-caption-meta-item+.post-caption-meta-item:before{padding:0 4px;content:"\02022"}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{position:absolute;top:0;left:50%;width:44px;height:44px;margin-left:-22px;opacity:0;transition:opacity .25s ease-out;direction:ltr;will-change:opacity}.pswp__preloader__icn{width:20px;height:20px;margin:12px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url(../images/preloader.gif) 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{position:absolute;top:15px;left:15px;width:14px;height:14px;margin:0;background:none;opacity:.75}.pswp--css_animation .pswp__preloader__cut{position:relative;width:7px;height:14px;overflow:hidden}.pswp--css_animation .pswp__preloader__donut{position:absolute;top:0;left:0;box-sizing:border-box;width:14px;height:14px;margin:0;background:none;border-color:#fff #fff transparent transparent;border-style:solid;border-width:2px;border-radius:50%}@media screen and (max-width:1024px){.pswp__preloader{position:relative;top:auto;left:auto;float:right;margin:0}}@keyframes clockwise{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.pswp__ui{z-index:1550;visibility:visible;opacity:1;-webkit-font-smoothing:auto}.pswp__top-bar{position:absolute;top:0;left:0;width:100%;height:44px}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{backface-visibility:hidden;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:none}/*# sourceMappingURL=screen.css.map */

/* ============================================================
   TechTrail customisations (appended; survives Casper updates)
   Regenerated during the 5.7.0 -> 5.12.1 rebase.
   ============================================================ */

/* --- Custom components: header overlay, post header, author card, TOC, tag pills --- */
.post-card-tag { border-radius: 12px;
    color: #fff;
    display: inline-block;
    margin: 1px 5px 1px 0;
    padding: 5px; }
.article-tag { margin-bottom: 16px;
    font-size: 1.6rem; }
figure.article-image { position: relative; }
.article-date { color: #fff;
    font-style: italic;
    font-weight: 200;
    left: 50%;
    margin-bottom: 0;
    margin-top: 4.5rem;
    max-width: 1000px;
    min-width: 400px;
    opacity: .75;
    position: absolute;
    text-align: center;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1; }
#techtrail-header-overlay { background: linear-gradient( 180deg,#657998 0%,#1c110a 100%);
    height: 100%;
    left: 0;
    opacity: .75;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0;
    z-index: 1; }
.m-author { border-color: var(--secondary-subtle-color);
    border-width: 1px 0;
    margin: max(3.2vmin, 24px) auto;
    padding: 0px 40px; }
@media only screen and (min-width: 48rem) { .m-author { display: flex;
        justify-content: center;
        padding: 0px 40px; } }
@media only screen and (min-width: 80rem) { .m-author { padding: 0px 40px; } }
@media only screen and (min-width: 48rem) { .m-author__content { display: flex;
        max-width: 1000px;
        padding: 20px 0; } }
.m-author__picture { align-items: center;
    display: flex;
    justify-content: center;
    margin: 0 auto 25px;
    width: 150px; }
@media only screen and (min-width: 48rem) { .m-author__picture { margin: 0 30px 0 0;
        width: 150px; } }
@media only screen and (min-width: 48rem) { .rtl .m-author__picture { margin: 0 0 0 30px; } }
.m-author__info { text-align: center; }
@media only screen and (min-width: 48rem) { .m-author__info { display: flex;
        flex-direction: column;
        flex: 1;
        justify-content: center;
        text-align: left; } }
@media only screen and (min-width: 48rem) { .rtl .m-author__info { text-align: right; } }
.m-author__name { color: var(--link-color);
    font-size: 2.8rem;
    font-weight: 700;
    letter-spacing: 0.2px;
    line-height: 1.3;
    margin: 0 0 15px; }
@media only screen and (min-width: 48rem) { .m-author__name { letter-spacing: 0.3px; } }
.m-author__bio { font-family: var(--font-sans);
    font-weight: 400;
    line-height: 1.6em; }
@media only screen and (min-width: 48rem) { .m-author__bio { margin-bottom: 15px; } }
.m-author-picture { display: block;
    height: 90px;
    width: 90px; }
@media only screen and (min-width: 48rem) { .m-author-picture { height: 150px;
        width: 150px; } }
.m-author-picture div { background-position: 50%;
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 50%;
    height: 100%;
    width: 100%; }
.m-author-links { list-style-type: none;
    margin: 0;
    padding: 0;
    text-align: center; }
@media only screen and (min-width: 48rem) { .m-author-links { text-align: left; } }
.m-author-links li { display: inline-block;
    margin: 0 0; }
.m-author-links li:first-of-type { margin-left: 0; }
.m-author-links li:last-of-type { margin-right: 0; }
.rtl .m-author-links { direction: ltr;
    text-align: right; }
.u_placeholder { display: flex;
    height: 65vh; }
.article-image { height: 65vh;
    overflow: hidden;
    position: absolute;
    width: 100%;
    z-index: 1 }
.article-image img { height: 65vh;
    object-fit: cover;
    object-position: 50% 50%;
    overflow: hidden;
    width: 100%; }
.article-header { margin-top: auto;
    padding: 32px 0;
    position: relative;
    width: 100%; }
.article-title { color: #fff;
    font-size: clamp(3.2rem, 5vw, 5.2rem);
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    text-align: left;
    z-index: 2; }
.article-tags { z-index: 2; }
.article-tag { border-radius: 16px;
    color: #fff;
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: .01em;
    margin: 1px 0 1px 0;
    padding: 4px 10px; }
.article-meta { color: #fff;
    font-size: 15px;
    opacity: 75%;
    padding: 4px 10px;
    z-index: 2; }
h1::before, h2::before, h3::before, h4::before, h5::before, h6::before { display: block;
    content: " ";
    height: 60px;
    margin-top: -60px;
    visibility: hidden; }
.gh-content { position: relative; }
.gh-toc strong { font-size: 1.6rem;
    font-weight: 700; }
.toc { margin-top: 10px;
    font-size: 1.5rem; }
.toc > .toc-list { position: relative;
    overflow: hidden; }
a.toc-link { display: inline-flex;
    height: 100%;
    font-weight: 400;
    padding: 2px 0;
    text-decoration: none;
    color: #30353c }
a.is-active-link { font-weight: 500; }
a.toc-link:hover { color: black; }
@media (max-width: 1300px) { .gh-sidebar { display: none; } }
@media (min-width: 1300px) { .gh-sidebar { position: absolute;
        top: 0;
        bottom: 0;
        margin-top: max(3.2vmin, 24px);
        grid-column: wide-start / main-start; } }
@media (min-width: 1300px) { .gh-toc { position: sticky; 
        top: 7vmin;
        overflow-y: auto; } }
.gh-toc .is-active-link::before { background-color: var(--ghost-accent-color); }

/* --- Overrides of stock Casper behaviour (TechTrail look) --- */
.site-header-cover { z-index: -1; }
.has-cover .site-header-content { min-height: 48vh; }
.gh-head { height: 66px; }
.has-cover:not(.home-template) .gh-head { position: sticky; top: 0; z-index: 10; } /* sticky, not fixed: stays in flow so Ghost's announcement bar can push the page down */
.gh-head-inner { grid-template-columns: auto 1fr auto; }
.gh-head-logo { padding-left: 10px; }
.gh-head-menu { justify-content: flex-end; }
.post-card-tags { margin: 10px 0; }
.post-card-meta { display: flex; align-items: center; gap: 6px; }
.article { padding: 0; margin-top: 0; } /* header is sticky (in flow) so no offset needed */
.page-template .article-header { padding-bottom: max(3.2vmin, 28px); }
.gh-canvas .article-image { grid-column: full-start / full-end; margin: 0; }
.gh-canvas .article-image img { margin: 0; width: 100%; height: 65vh; object-fit: cover; }
.gh-content pre { max-height: 450px; }
.gh-content table:not(.gist table) { display: inline-table; font-family: var(--font-serif); font-size: 2rem; background: none; }
.gh-content table:not(.gist table) td:first-child { background-image: none; }
.gh-content table:not(.gist table) td:last-child { background-image: none; }
.gh-content table:not(.gist table) th { font-size: 2.2rem; font-family: var(--font-sans); background-color: transparent; }
.article-comments { margin: 6vmin 0 0; }
.site-footer { background: #30353c; margin: max(2.4vmin, 36px) 0 0; padding-bottom: 24px; }


/* Fallback header for posts without a feature image */
.article-image-fallback { background: #383f49; min-height: 32vh; }
.article-image-fallback + .article-header .article-title { color: #fff; }

/* Keep cover title/description cleanly above the header overlay if shown */
.site-header-inner { z-index: 1; }
#techtrail-header-overlay { pointer-events: none; }

/* Sam deleted these stock paddings in 5.7.0; re-neutralise them (fixes gap above post feature image) */
.post-template .article { padding: 0; }
.post-template .article-header { padding: 0 0 max(6.4vmin, 40px); }

/* Hard-coded design intent (independent of Ghost design settings, which persist across theme uploads) */
/* Always show the nav wordmark, including on the homepage */
.home-template .gh-head .gh-head-logo { display: block !important; }
/* 5.12.1 added a 64px right margin to the nav menu in left-logo layout; remove it (gap between Home and search) */
@media (min-width: 992px) {
  .is-head-left-logo .gh-head-menu { margin-right: 0; }
}
/* Body prose is always sans (Roboto stack), regardless of the stored body_font setting */
.gh-content > blockquote:not([class]), .gh-content > ol, .gh-content > ul, .gh-content > dl, .gh-content > p,
.gh-content .kg-callout-card .kg-callout-text,
.gh-content .kg-toggle-card .kg-toggle-content > ol, .gh-content .kg-toggle-card .kg-toggle-content > ul, .gh-content .kg-toggle-card .kg-toggle-content > p {
  font-family: var(--font-sans);
}

/* Missed in the first migration pass (multi-selector rules; comma-normalisation bug in the diff) */
/* Sam's wider content column: 1000px body instead of stock 720px */
.gh-canvas, .kg-width-full.kg-content-wide { --main: min(var(--content-width, 1000px), 100% - var(--gap) * 2); }
/* Wide cards (galleries etc.) stay within the body column, per Sam's original design */
.kg-width-wide, .kg-content-wide > div { grid-column: main-start / main-end; }
:is(.tag-template, .author-template) .post-feed { margin-top: 64px; }
.post-card-excerpt { margin-top: 0; }
.gh-content > [id]:not(:first-child) { margin: max(3.2vmin, 24px) 0 0; }
@media (max-width: 767px) {
  #gh-head { height: 66px; z-index: 100000000; }
  #gh-head .gh-head-brand { grid-template-columns: 40px 1fr auto auto; }
}

/* Dark-mode coverage for TechTrail custom components (stock dark rules don't know about them) */
html.dark-mode .post-card-meta a { color: var(--color-secondary-text); }
html.dark-mode .m-author__name a { color: #fff; }
html.dark-mode .m-author__bio { color: rgba(255,255,255,0.75); }
html.dark-mode .gh-toc strong { color: rgba(255,255,255,0.9); }
html.dark-mode a.toc-link { color: var(--color-secondary-text); }
html.dark-mode a.is-active-link, html.dark-mode a.toc-link:hover { color: #fff; }
@media (prefers-color-scheme: dark) {
  html.auto-color .post-card-meta a { color: var(--color-secondary-text); }
  html.auto-color .m-author__name a { color: #fff; }
  html.auto-color .m-author__bio { color: rgba(255,255,255,0.75); }
  html.auto-color .gh-toc strong { color: rgba(255,255,255,0.9); }
  html.auto-color a.toc-link { color: var(--color-secondary-text); }
  html.auto-color a.is-active-link, html.auto-color a.toc-link:hover { color: #fff; }
}

/* Dark-mode: byline social icons (fill/stroke: currentColor inherits link colour) */
html.dark-mode .m-author-links a { color: rgba(255,255,255,0.75); }
html.dark-mode .m-author-links a:hover { color: #fff; }
@media (prefers-color-scheme: dark) {
  html.auto-color .m-author-links a { color: rgba(255,255,255,0.75); }
  html.auto-color .m-author-links a:hover { color: #fff; }
}

/* Nav mark: optical sizing against the wordmark. The circle has internal padding, so it
   needs to run larger than the text cap height to read as the same visual weight. */
.gh-head-brand { align-items: center; }
.gh-head-brand > a:first-child { display: inline-flex; align-items: center; margin-right: 9px; }
.gh-head-brand > a:first-child img { display: block; width: 30px; height: 30px; }
@media (max-width: 767px) {
  #gh-head .gh-head-brand { grid-template-columns: 30px 1fr auto auto; }
}

/* Nav mark must never squash: the grid/flex parents can compress it at narrow widths */
.gh-head-brand > a:first-child { flex: 0 0 auto; }
.gh-head-brand > a:first-child img {
  width: 30px; height: 30px;
  min-width: 30px; max-width: none;
  flex: 0 0 auto;
  object-fit: contain;   /* belt and braces: even a squashed box keeps the artwork square */
}

/* Nav mark alignment: blue stack spans cap-height to baseline, nozzle sits above the cap line.
   Wordmark is 2.6rem (26px) Roboto, cap height 0.711em = 18.5px. The stack is the bottom 83.3%
   of the artwork, so image height = 18.5 / 0.833 = 22px, with its bottom edge on the baseline. */
.gh-head-brand { align-items: baseline; }
.gh-head-brand > a:first-child { display: inline-block; flex: 0 0 auto; margin-right: 9px; }
.gh-head-brand > a:first-child img {
  display: block;
  width: 22px; height: 22px;
  min-width: 22px; max-width: none;
  object-fit: contain;
}
.gh-head-brand .gh-burger { align-self: center; }
@media (max-width: 767px) {
  #gh-head .gh-head-brand { grid-template-columns: 22px 1fr auto auto; }
}

/* Optical nudge for the whole brand block (mark + wordmark) within the header bar.
   The block is geometrically cap-centred already; this is a taste adjustment.
   SINGLE KNOB: change the top value. Positive = lower, negative = higher. */
.gh-head-brand { position: relative; top: 3px; }

/* ============================================================
   Typography: IBM Plex Sans + IBM Plex Mono (replaced Roboto)
   Loaded from Google Fonts in default.hbs, subset to 400/700
   plus italics (Sans) and 400 plus italic (Mono).
   ============================================================ */

/* Override the stock Casper font stacks. Declared here rather than edited into
   screen.css so the customisation survives a Casper upgrade. Roboto stays deep
   in the fallback chain as the Android system font. */
:root {
  --font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* Headings are always the sans stack, regardless of the stored title_font design
   setting. Matches the existing hard-coded rule for body prose above: design
   settings persist across theme uploads, so intent that must never vary is
   pinned in CSS rather than left to admin state. */
h1, h2, h3, h4, h5, h6,
.site-title, .site-description, .gh-head-logo,
.post-card-title, .article-title, .footer-cta-title,
.gh-content > [id],
.kg-toggle-card .kg-toggle-heading-text,
.kg-header-card h2.kg-header-card-header {
  font-family: var(--font-sans);
}

/* Code: Prism's stylesheet loads AFTER screen.css and sets its own font-family on
   code[class*="language-"] / pre[class*="language-"] (0,1,1). These selectors are
   deliberately more specific so Plex Mono actually wins. Verify in DevTools, not
   by assuming. */
.gh-content pre,
.gh-content code,
.gh-content :not(pre) > code,
.gh-content pre[class*="language-"],
.gh-content code[class*="language-"],
.gh-content pre[class*="language-"] code[class*="language-"] {
  font-family: var(--font-mono);
}
