diff --git a/assets/built/source.css b/assets/built/source.css
new file mode 100644
index 0000000..034bab5
--- /dev/null
+++ b/assets/built/source.css
@@ -0,0 +1,2 @@
+img.kofiimg{content:url(../images/ko-fi/cup-border.png);display:initial;height:13px;margin:0 5px 3px 0;width:20px}.kofiimg:after,img.kofiimg{border:none;padding-bottom:0;padding-top:0;vertical-align:middle}.kofiimg:after{content:url(../images/ko-fi/whitelogo.svg);height:25px;margin:0 6px 4px 0}.kofi-btn-container{--button-background-color:#fff;--button-background-color-active:hsla(0,0%,100%,.8);--button-text-color:#15171a;--button-text-color-active:#15171a;display:inline-block;min-width:160px;white-space:nowrap}a.kofi-button{background-color:var(--button-background-color);border:0 #fff;border-radius:7px;box-shadow:1px 1px 0 rgba(0,0,0,.2);color:var(--button-text-color);cursor:pointer;display:inline-block;font-family:var(--font-sans);font-size:14px;font-weight:700;line-height:36px;min-width:150px;overflow-wrap:break-word;padding:2px 12px;text-align:center;text-decoration:none;text-shadow:none;vertical-align:middle}a.kofi-button:active,a.kofi-button:hover,a.kofi-button:visited{background:var(--button-background-color-active);color:var(--button-text-color);text-decoration:none}a.kofi-button:active span.kofitext,a.kofi-button:hover span.kofitext{color:var(--button-text-color-active);opacity:1;text-decoration:none}span.kofitext{color:var(--button-text-color);letter-spacing:-.15px;text-wrap:none;line-height:33px;padding:0;text-align:center;text-decoration:none;text-shadow:0 1px 1px rgba(34,34,34,.05);vertical-align:middle}span.kofitext img.kofiimg{animation:kofi-wiggle 3s infinite;display:initial;height:15px;width:22px}@keyframes kofi-wiggle{0%{transform:rotate(0) scale(1)}60%{transform:rotate(0) scale(1)}75%{transform:rotate(0) scale(1.12)}80%{transform:rotate(0) scale(1.1)}84%{transform:rotate(-10deg) scale(1.1)}88%{transform:rotate(10deg) scale(1.1)}92%{transform:rotate(-10deg) scale(1.1)}96%{transform:rotate(10deg) scale(1.1)}to{transform:rotate(0) scale(1)}}code[class*=language-],pre[class*=language-]{background:0 0;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;-webkit-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}pre.diff-highlight>code .token.deleted:not(.prefix),pre>code.diff-highlight .token.deleted:not(.prefix){background-color:rgba(255,0,0,.1);color:inherit;display:block}pre.diff-highlight>code .token.inserted:not(.prefix),pre>code.diff-highlight .token.inserted:not(.prefix){background-color:rgba(0,255,128,.1);color:inherit;display:block}:root{--color-white:#fff;--color-lighter-gray:rgba(0,0,0,.05);--color-light-gray:#e6e6e6;--color-mid-gray:#ccc;--color-dark-gray:#444;--color-darker-gray:#15171a;--color-black:#000;--color-primary-text:var(--color-darker-gray);--color-secondary-text:rgba(0,0,0,.55);--color-border:rgba(0,0,0,.08);--color-dark-border:rgba(0,0,0,.55);--font-sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-serif:"EB Garamond",Georgia,Times,serif;--font-serif-alt:Georgia,Times,serif;--font-mono:"JetBrains Mono",Menlo,Consolas,Monaco,"Liberation Mono","Lucida Console",monospace;--container-width:1320px;--container-gap:clamp(24px,1.7032rem + 1.9355vw,48px);--grid-gap:42px}:is(.gh-navigation,.gh-footer).has-accent-color,:root.has-light-text{--color-lighter-gray:hsla(0,0%,100%,.1);--color-darker-gray:#fff;--color-secondary-text:hsla(0,0%,100%,.64);--color-border:hsla(0,0%,100%,.15);--color-dark-border:hsla(0,0%,100%,.5)}*,:after,:before{box-sizing:border-box}*{margin:0}html{font-size:62.5%}body{line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}canvas,img,picture,svg,video{display:block;height:auto;max-width:100%}iframe{display:block}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{line-height:1.2}body{background-color:var(--background-color);color:var(--color-primary-text);font-family:var(--font-sans);font-size:1.6rem}a{color:var(--color-darker-gray);text-decoration:none}a:hover{opacity:.8}.gh-button{align-items:center;background-color:var(--ghost-accent-color);border:0;border-radius:100px;color:var(--color-white);cursor:pointer;display:inline-flex;font-size:1.5rem;font-weight:600;gap:.4em;justify-content:center;letter-spacing:-.004em;line-height:1;padding:.8em 1.4em}.gh-button:hover{opacity:.95}.gh-icon-button{align-items:center;background-color:transparent;border:0;color:var(--color-darker-gray);cursor:pointer;display:inline-flex;height:32px;justify-content:center;outline:none;padding:0;width:32px}.gh-icon-button:hover :is(svg,span){opacity:.8}.gh-icon-button svg{height:20px;width:20px}.gh-form{align-items:center;background-color:var(--color-lighter-gray);border-radius:40px;display:flex;font-size:1.7rem;font-weight:450;height:56px;letter-spacing:-.008em;max-width:560px;position:relative;transition:background-color .2s ease;width:100%}.gh-form.success{pointer-events:none}.gh-form.error{box-shadow:0 0 0 1px red}.gh-form:hover{background-color:rgba(0,0,0,.065)}.gh-footer.has-accent-color .gh-form:hover,.has-light-text .gh-form:hover{background-color:hsla(0,0%,100%,.15)}.gh-form-input{background-color:transparent;border:0;border-radius:40px;font-size:inherit;height:100%;inset:0;letter-spacing:inherit;line-height:1.1;outline:none;padding-inline:26px;position:absolute;transition:.3s ease-in-out;width:100%}.gh-form-input::-moz-placeholder{color:rgba(0,0,0,.3)}.gh-form-input::placeholder,button.gh-form-input{color:rgba(0,0,0,.3)}:is(.has-serif-title,.has-mono-title) .gh-form-input{padding-inline:20px}.gh-form.gh-form.success .gh-form-input{opacity:.5}.gh-footer.has-accent-color .gh-form-input,.has-light-text .gh-form-input{color:#fff}.gh-footer.has-accent-color .gh-form-input::-moz-placeholder,.has-light-text .gh-form-input::-moz-placeholder{color:hsla(0,0%,100%,.55)}.gh-footer.has-accent-color .gh-form-input::placeholder,.has-light-text .gh-form-input::placeholder,.has-light-text button.gh-form-input{color:hsla(0,0%,100%,.55)}.gh-header.is-classic.has-image .gh-form-input{color:#15171a}.gh-header.is-classic.has-image .gh-form-input::-moz-placeholder{color:rgba(0,0,0,.5)}.gh-header.is-classic.has-image .gh-form-input::placeholder,.gh-header.is-classic.has-image .gh-form>svg,.gh-header.is-classic.has-image button.gh-form-input{color:rgba(0,0,0,.5)}button.gh-form-input{color:var(--color-secondary-text);cursor:pointer;padding-inline-start:56px;text-align:left}:is(.has-serif-title,.has-mono-title) button.gh-form-input{padding-inline-start:50px}.gh-form .gh-button{font-size:inherit;height:44px;padding-inline:32px;position:absolute;right:6px}.gh-form>svg{color:var(--color-secondary-text);height:20px;left:22px;position:relative;width:20px}:is(.has-serif-title,.has-mono-title) .gh-form>svg{left:16px}.gh-form .gh-button svg{display:none;margin-top:1px;position:absolute}.gh-form:is(.loading,.success) .gh-button span{visibility:hidden}.gh-form.loading .gh-button svg:first-of-type,.gh-form.success .gh-button svg:last-of-type{display:block}.gh-form [data-members-error]{font-size:1.4rem;line-height:1.4;margin-top:10px;position:absolute;top:100%;width:100%}@media (max-width:576px){.gh-form{font-size:1.6rem}.gh-form .gh-button{padding-inline:12px}.gh-form .gh-button span span{display:none}.gh-form .gh-button span svg{display:inline;height:20px;margin-top:2px;position:static;width:20px}}.gh-viewport{display:flex;flex-direction:column;min-height:100vh;position:relative}.gh-outer{padding:0 max(4vmin,20px)}.gh-outer .gh-outer{padding:0}.gh-inner{margin:0 auto;max-width:var(--container-width);width:100%}.gh-main{flex-grow:1}.gh-canvas,.kg-width-full.kg-content-wide{--main:min(var(--content-width,720px),100% - var(--container-gap) * 2);--wide:minmax(0,calc((var(--container-width, 1200px) - var(--content-width, 720px))/2));--full:minmax(var(--container-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}.kg-content-wide>div,.kg-width-wide{grid-column:wide}.kg-width-full{grid-column:full}.gh-navigation{background-color:var(--background-color);color:var(--color-darker-gray);font-size:1.5rem;font-weight:550;height:100px}.gh-navigation :is(.gh-navigation-logo,a:not(.gh-button),.gh-icon-button){color:inherit}.gh-navigation-inner{align-items:center;-moz-column-gap:24px;column-gap:24px;display:grid;grid-auto-flow:row dense;height:100%}.gh-navigation-brand{line-height:1}.gh-navigation-logo{font-size:calc(2.4rem*var(--factor, 1));font-weight:725;letter-spacing:-.015em;position:relative;white-space:nowrap}.gh-navigation-logo img{max-height:40px}.gh-navigation-menu{align-items:center;display:flex;gap:24px}.gh-navigation .nav{align-items:center;display:inline-flex;gap:28px;list-style:none;margin:0;padding:0;white-space:nowrap}.gh-navigation .gh-more-toggle{font-size:inherit;margin:0 -6px;position:relative;text-transform:inherit}.gh-navigation .gh-more-toggle svg{height:24px;width:24px}.gh-navigation-actions{align-items:center;background-color:var(--background-color);display:flex;gap:24px;justify-content:flex-end}.gh-navigation.has-accent-color .gh-navigation-actions{background-color:var(--ghost-accent-color)}.gh-navigation-members{align-items:center;display:flex;gap:20px;white-space:nowrap}.gh-navigation-members .gh-button{font-size:inherit;font-weight:600}.gh-search{margin-left:-2px;margin-right:-2px}@media (max-width:767px){.gh-navigation-logo{white-space:normal}.gh-navigation-members{flex-direction:column-reverse;gap:16px;width:100%}.gh-navigation-actions .gh-search{display:none}}@media (min-width:768px){.gh-navigation-brand .gh-search{display:none}.gh-navigation:not(.is-dropdown-loaded) .gh-navigation-menu .nav>li{opacity:0}}.gh-navigation.has-accent-color{background-color:var(--ghost-accent-color)}.gh-navigation.has-accent-color .gh-button{background-color:#fff;color:#15171a}.gh-navigation.is-left-logo .gh-navigation-inner{grid-template-columns:auto 1fr auto}@media (min-width:768px){.gh-navigation.is-left-logo .gh-navigation-logo:not(:has(img)){top:-2px}}@media (min-width:992px){.gh-navigation.is-left-logo .gh-navigation-menu{margin-left:16px;margin-right:100px}}.gh-navigation.is-middle-logo .gh-navigation-inner{grid-template-columns:1fr auto 1fr}.gh-navigation.is-middle-logo .gh-navigation-brand{grid-column-start:2}.gh-navigation.is-middle-logo .gh-navigation-actions{gap:28px}@media (min-width:992px){.gh-navigation.is-middle-logo .gh-navigation-menu{margin-right:64px}}.gh-navigation.is-stacked{height:auto;position:relative}.gh-navigation.is-stacked .gh-navigation-inner{grid-template-columns:1fr auto 1fr}.gh-navigation.is-stacked .gh-navigation-brand{align-items:center;display:flex;grid-column-start:2;grid-row-start:1;min-height:80px}@media (max-width:767px){.gh-navigation.is-stacked .gh-navigation-brand{min-height:unset}}@media (min-width:992px){.gh-navigation.is-stacked .gh-navigation-inner{padding:0}.gh-navigation.is-stacked .gh-navigation-brand{align-items:center;display:flex;height:80px}.gh-navigation.is-stacked .gh-navigation-menu{grid-column:1/4;grid-row-start:2;height:60px;justify-content:center;margin:0 48px}.gh-navigation.is-stacked .gh-navigation-menu:after,.gh-navigation.is-stacked .gh-navigation-menu:before{background-color:var(--color-border);content:"";height:1px;left:0;position:absolute;top:80px;width:100%}.gh-navigation.is-stacked .gh-navigation-menu:after{top:140px}.gh-navigation.is-stacked .gh-navigation-actions{grid-column:1/4;grid-row-start:1;justify-content:space-between}.gh-navigation.is-stacked .gh-navigation-actions .gh-search{display:flex;gap:10px;width:auto}}.gh-dropdown{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);margin-top:24px;opacity:0;padding:12px 0;position:absolute;right:-16px;text-align:left;top:100%;transform:translate3d(0,6px,0);transition:opacity .3s,transform .2s;visibility:hidden;width:200px;z-index:90}.gh-dropdown.is-left{left:-16px;right:auto}.is-dropdown-mega .gh-dropdown{-moz-column-gap:40px;column-gap:40px;display:grid;grid-auto-flow:column;grid-template-columns:1fr 1fr;padding:20px 32px;width:auto}.is-dropdown-open .gh-dropdown{opacity:1;transform:translateY(0);visibility:visible}.gh-dropdown li a{color:#15171a!important;display:block;line-height:1.5;padding:7px 20px;white-space:normal}.is-dropdown-mega .gh-dropdown li a{padding:8px 0}.gh-burger{align-items:center;display:flex;display:none;justify-content:center;margin-left:4px;margin-right:-7px;position:relative}.gh-burger svg{height:24px;width:24px}.gh-burger svg:last-child,.is-open .gh-burger svg:first-child{display:none}.is-open .gh-burger svg:last-child{display:block}@media (max-width:767px){.gh-burger{display:flex}#gh-navigation{height:64px}#gh-navigation .gh-navigation-inner{gap:48px;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}#gh-navigation .gh-navigation-brand{align-items:center;display:grid;grid-column-start:1;grid-template-columns:1fr auto auto;height:64px}#gh-navigation .gh-navigation-logo{font-size:2.2rem}#gh-navigation .gh-navigation-actions,#gh-navigation .gh-navigation-menu{justify-content:center;opacity:0;position:fixed;visibility:hidden}#gh-navigation .gh-navigation-menu{transform:translateY(0);transition:none}#gh-navigation .nav{align-items:center;gap:20px;line-height:1.4}#gh-navigation .nav a{font-size:1.75rem;font-weight:600;text-transform:none}#gh-navigation .nav li{opacity:0;transform:translateY(-4px)}#gh-navigation .gh-navigation-actions{text-align:center}#gh-navigation :is(.gh-button,a[data-portal=signin]){opacity:0;transform:translateY(8px)}#gh-navigation .gh-button{font-size:1.75rem;text-transform:none;width:100%}#gh-navigation a[data-portal=signin]{font-size:1.75rem}#gh-main{transition:opacity .4s}.is-open#gh-navigation{height:100%;inset:0;overflow-y:scroll;position:fixed;z-index:3999999;-webkit-overflow-scrolling:touch}.is-open#gh-navigation .gh-navigation-actions,.is-open#gh-navigation .gh-navigation-menu{opacity:1;position:static;visibility:visible}.is-open#gh-navigation .nav{display:flex;flex-direction:column}.is-open#gh-navigation .nav li{opacity:1;transform:translateY(0);transition:transform .2s,opacity .2s}.is-open#gh-navigation .gh-navigation-actions{align-items:center;bottom:0;display:inline-flex;flex-direction:column;gap:12px;left:0;padding:var(--container-gap) 0;position:sticky;right:0}.is-open#gh-navigation :is(.gh-button,a[data-portal=signin]){opacity:1;transform:translateY(0);transition:transform .4s,opacity .4s;transition-delay:.2s}.is-open#gh-navigation a[data-portal=signin]{transition-delay:.4s}.is-open#gh-main{opacity:0}}.gh-card{position:relative}.gh-card-link{display:flex;flex-direction:column;gap:20px}.gh-card-link:hover{opacity:1}.gh-card-image{aspect-ratio:16/9;flex-shrink:0;position:relative}.gh-card-image img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.gh-card-wrapper{flex-grow:1}.gh-card-tag{display:none;font-size:1.2rem;font-weight:500;letter-spacing:.01em;margin-bottom:4px;text-transform:uppercase}.gh-card-title{font-size:calc(1.9rem*var(--factor, 1));font-weight:725;letter-spacing:-.014em;line-height:1.3}.gh-card-link:hover .gh-card-title{opacity:.8}.gh-card-excerpt{display:-webkit-box;font-size:1.45rem;line-height:1.4;margin-top:8px;overflow-y:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.gh-card-meta{align-items:center;color:var(--color-secondary-text);display:flex;flex-wrap:wrap;font-size:1.25rem;font-weight:500;gap:4px;letter-spacing:-.004em;line-height:1.05;padding-bottom:1px}.gh-card-meta svg{height:16px;margin-right:2px;margin-top:-2px;width:16px}.gh-card-meta:not(:empty){margin-top:12px}.gh-card-author+.gh-card-date:before{content:"—";margin-right:4px}.gh-header{margin-top:40px;position:relative}.gh-header-inner{overflow:hidden;position:relative}.gh-header.is-magazine .gh-header-inner{display:grid;gap:var(--grid-gap);grid-template-columns:repeat(16,1fr)}.gh-header.is-magazine .gh-header-inner>div{display:flex;flex-direction:column;gap:var(--grid-gap);grid-row:1}.gh-header.is-magazine .gh-header-left{grid-column:1/span 4}.gh-header.is-magazine .gh-header-inner>.gh-card{grid-column:5/span 8;position:relative}.gh-header.is-magazine .gh-header-right{grid-column:13/-1}.gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-link{gap:28px}.gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-image{aspect-ratio:1.618033}.gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-tag{display:block;margin-bottom:12px}.gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-title{font-size:clamp(2.8rem,1.36vw + 2.25rem,4rem);font-weight:700;letter-spacing:-.022em;line-height:1.1}.gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-excerpt{font-size:1.8rem;letter-spacing:-.02em;margin-top:clamp(12px,.45vw + 10.18px,16px);max-width:90%}.gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-meta:not(:empty){margin-top:14px}.gh-header.is-magazine :is(.gh-header-left,.gh-header-right) .gh-card:last-child .gh-card-image{display:none}.gh-header.is-magazine .gh-header-inner>div .gh-card-excerpt{display:none}.gh-header.is-magazine .gh-header-inner>.gh-card:after,.gh-header.is-magazine .gh-header-inner>.gh-card:before{background-color:var(--color-border);content:"";height:100%;left:calc(var(--grid-gap)/-2);position:absolute;top:0;width:1px}.gh-header.is-magazine .gh-header-inner>.gh-card:after{left:auto;right:calc(var(--grid-gap)/-2)}.gh-header.is-magazine .gh-header-inner>div .gh-card+.gh-card:before{background-color:var(--color-border);content:"";height:1px;left:0;position:absolute;top:calc(var(--grid-gap)/-2);width:100%}@media (max-width:1199px){.gh-header.is-magazine .gh-header-inner{grid-template-columns:repeat(12,1fr)}.gh-header.is-magazine .gh-header-inner>.gh-card{grid-column:1/span 8}.gh-header.is-magazine .gh-header-left{grid-column:9/-1}.gh-header.is-magazine .gh-header-inner>div.gh-header-right{flex-direction:row;grid-column:1/-1;grid-row:2}.gh-header.is-magazine .gh-header-right .gh-card{flex:1}.gh-header.is-magazine .gh-header-right .gh-card:last-child .gh-card-image{display:block}.gh-header.is-magazine .gh-header-right{position:relative}.gh-header.is-magazine .gh-header-right:before{background-color:var(--color-border);content:"";height:1px;left:0;position:absolute;top:calc(var(--grid-gap)/-2);width:100%}.gh-header.is-magazine .gh-header-right .gh-card:before{display:none}.gh-header.is-magazine .gh-header-right .gh-card:after{background-color:var(--color-border);content:"";height:100%;position:absolute;right:calc(var(--grid-gap)/-2);top:0;width:1px}}@media (max-width:991px){.gh-header.is-magazine .gh-header-left .gh-card:nth-child(2) .gh-card-image{display:none}}@media (max-width:767px){.gh-header.is-magazine .gh-header-inner{display:flex;flex-direction:column;gap:var(--grid-gap)}.gh-header.is-magazine .gh-header-inner>div.gh-header-right{flex-direction:column}.gh-header.is-magazine .gh-card-image{display:block!important}.gh-header.is-magazine .gh-card:before{background-color:var(--color-border);content:"";display:block!important;height:1px;left:0;position:absolute;top:calc(var(--grid-gap)/-2);width:100%}}.gh-header.is-highlight .gh-header-inner{display:grid;gap:var(--grid-gap);grid-template-columns:repeat(16,1fr)}.gh-header.is-highlight .gh-header-left{grid-column:span 8;position:relative}.gh-header.is-highlight .gh-header-left .gh-card{grid-column:span 8;grid-row:span 3}.gh-header.is-highlight .gh-header-left .gh-card .gh-card-link{gap:28px}.gh-header.is-highlight .gh-header-left .gh-card .gh-card-image{aspect-ratio:3/2}.gh-header.is-highlight .gh-header-left .gh-card .gh-card-tag{display:block;margin-bottom:12px}.gh-header.is-highlight .gh-header-left .gh-card .gh-card-title{font-size:clamp(2.8rem,1.36vw + 2.25rem,4rem);font-weight:700;letter-spacing:-.022em;line-height:1.1}.gh-header.is-highlight .gh-header-left .gh-card .gh-card-excerpt{font-size:1.8rem;margin-top:clamp(12px,.45vw + 10.18px,16px)}.gh-header.is-highlight .gh-header-left .gh-card .gh-card-meta:not(:empty){margin-top:14px}.gh-header.is-highlight .gh-header-middle{display:flex;flex-direction:column;gap:var(--grid-gap);grid-column:9/span 4;position:relative}.gh-header.is-highlight .gh-header-middle .gh-card .gh-card-excerpt,.gh-header.is-highlight .gh-header-middle .gh-card:last-child .gh-card-image{display:none}.gh-header.is-highlight .gh-header-right{grid-column:13/-1}.gh-header.is-highlight .gh-featured{margin-top:0;padding:0}.gh-header.is-highlight .gh-featured-feed{display:flex;flex-direction:column}.gh-header.is-highlight .gh-featured-feed .gh-card-title{font-size:clamp(1.4rem,.23vw + 1.31rem,1.6rem)}.gh-header.is-highlight .gh-header-left:after,.gh-header.is-highlight .gh-header-middle:after{background-color:var(--color-border);content:"";height:100%;position:absolute;right:calc(var(--grid-gap)/-2);top:0;width:1px}.gh-header.is-highlight .gh-card:before{background-color:var(--color-border);content:"";height:1px;left:0;position:absolute;top:calc(var(--grid-gap)/-2);width:100%}.gh-header.is-highlight .gh-featured .gh-card:first-child:before{display:none}@media (max-width:1199px){.gh-header.is-highlight .gh-header-inner{grid-template-columns:repeat(9,1fr)}.gh-header.is-highlight .gh-header-left{grid-column:span 6}.gh-header.is-highlight .gh-header-middle{grid-column:7/-1}.gh-header.is-highlight .gh-header-right{grid-column:1/-1}.gh-header.is-highlight .gh-featured-feed{display:grid;grid-template-columns:repeat(3,1fr)}.gh-header.is-highlight .gh-featured-feed .gh-card:before{width:calc(100% + var(--grid-gap))}.gh-header.is-highlight .gh-featured-feed .gh-card:after{background-color:var(--color-border);content:"";height:100%;left:calc(var(--grid-gap)/-2);position:absolute;top:0;width:1px}}@media (max-width:991px){.gh-header.is-highlight .gh-header-middle .gh-card:nth-child(2) .gh-card-image{display:none}}@media (max-width:767px){.gh-header.is-highlight .gh-header-inner{display:flex;flex-direction:column}.gh-header.is-highlight .gh-featured-feed{display:flex}.gh-header.is-highlight .gh-card-image{display:block!important}.gh-header.is-highlight .gh-header-middle .gh-card .gh-card-excerpt{display:-webkit-box}}.gh-header.is-classic{display:flex;margin-top:0;padding-block:160px}.gh-header.is-classic .gh-header-inner{align-items:center;display:flex;flex-direction:column;gap:48px;margin:auto;max-width:1020px;overflow:unset;text-align:center}.gh-header.is-classic .gh-header-title{font-size:calc(clamp(3rem, 1.82vw + 2.27rem, 4.6rem)*var(--factor, 1));letter-spacing:-.028em;line-height:1.1}.gh-header.is-classic.has-image{margin-top:0}.gh-header.is-classic.has-image:before{background-color:var(--color-black);content:"";inset:0;opacity:.3;position:absolute;transition:opacity 1.5s ease}.gh-header.is-classic.has-image .gh-header-inner{color:#fff}.gh-header.is-classic.has-image .gh-header-image{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:-1}.gh-header.is-classic.has-image .gh-form{background-color:#fff}.gh-cta{display:none;margin-top:max(4vw,40px)}.gh-header:is(.is-highlight,.is-magazine)+.gh-cta{display:block}.gh-cta-inner{align-items:center;background-color:var(--color-lighter-gray);display:flex;flex-direction:column;gap:36px;overflow:hidden;padding:clamp(48px,3.64vw + 33.45px,80px) clamp(40px,2.73vw + 29.09px,64px);position:relative;text-align:center}.gh-cta-content{max-width:640px}.gh-cta-title{font-size:clamp(2.8rem,1.36vw + 2.25rem,4rem);font-weight:700;letter-spacing:-.021em;line-height:1.1}.gh-cta-description{font-size:1.8rem;letter-spacing:-.015em;line-height:1.4;margin-top:12px}.gh-featured{margin-top:100px}.gh-navigation+.gh-featured{margin-top:64px}.gh-header.is-classic:not(.has-image)+.gh-featured{margin-top:0}.gh-featured-inner{overflow:hidden}.gh-featured-title{border-bottom:1px solid var(--color-border);font-size:1.2rem;font-weight:550;letter-spacing:.025em;margin-bottom:20px;padding-bottom:12px;text-transform:uppercase}.gh-featured-feed{display:grid;gap:var(--grid-gap);grid-template-columns:repeat(4,1fr)}.gh-featured-feed .gh-card{container-name:featured-card;container-type:inline-size}.gh-featured-feed .gh-card-link{align-items:flex-start;display:flex;flex-direction:row-reverse}.gh-featured-feed .gh-card-image{aspect-ratio:1;width:72px}@container featured-card (width < 240px){.gh-featured-feed .gh-card-image{display:none}}@container featured-card (240px <= width <= 270px){.gh-featured-feed .gh-card-image{width:64px}}.gh-featured-feed .gh-card-wrapper{container-name:featured-card-wrapper;container-type:inline-size}.gh-featured-feed .gh-card-title{font-size:1.6rem;font-weight:650;letter-spacing:-.011em}@container featured-card-wrapper (width < 170px){.gh-featured-feed .gh-card-title{font-size:1.6rem}}.gh-featured-feed .gh-card-excerpt{display:none}.gh-featured-feed .gh-card-meta:not(:empty){margin-top:10px}.gh-featured-feed .gh-card:before{background-color:var(--color-border);content:"";height:100%;left:calc(var(--grid-gap)/-2);position:absolute;top:0;width:1px}@media (max-width:1199px){.gh-viewport>.gh-featured .gh-featured-feed{grid-template-columns:repeat(3,1fr)}.gh-viewport>.gh-featured .gh-featured-feed .gh-card:nth-child(4){display:none}}@media (max-width:767px){.gh-viewport>.gh-featured .gh-featured-feed{display:flex;flex-direction:column}}.gh-container{flex-grow:1;margin-top:64px}.gh-container-inner{-moz-column-gap:var(--grid-gap);column-gap:var(--grid-gap);display:grid;grid-template-columns:repeat(16,1fr)}:is(.gh-featured,.gh-cta)+.gh-container{margin-top:max(4vw,40px)}.gh-header.is-classic:not(.has-image)+.gh-container{margin-top:0}.gh-navigation+.gh-container .gh-container-title,:is(.paged,.tag-template,.author-template) .gh-container:not(.has-sidebar) .gh-container-title{display:none}.gh-more{display:none;font-size:calc(1.9rem*var(--factor, 1));font-weight:725;grid-column:1/-1;letter-spacing:-.014em;margin-top:48px}.gh-container.has-sidebar .gh-more{grid-column:span 12}.home-template .gh-feed:has(>:nth-child(12):last-child)~.gh-more{display:block}.gh-more a{align-items:center;display:flex;gap:4px}.gh-more svg{height:18px;margin-top:-1px;width:18px}.has-serif-title .gh-more svg{margin-top:0}.gh-container.has-sidebar .gh-main{grid-column:1/span 12;position:relative}.gh-container.has-sidebar .gh-sidebar{grid-column:13/-1}.gh-container.has-sidebar .gh-main:after{background-color:var(--color-border);content:"";height:100%;position:absolute;right:calc(var(--grid-gap)/-2);top:0;width:1px}.gh-container:not(.has-sidebar) :is(.gh-container-title,.gh-main,.gh-more){grid-column:3/span 12}.gh-container.is-list.no-image:not(.has-sidebar) :is(.gh-container-title,.gh-main,.gh-more){grid-column:4/span 10}.gh-header:is(.is-highlight,.is-magazine)~.gh-container.is-grid:not(.has-sidebar) :is(.gh-container-title,.gh-main,.gh-more){grid-column:1/-1}@media (max-width:1199px){.gh-container-inner{display:block;overflow:hidden}.gh-container.has-sidebar .gh-sidebar{display:none}}.gh-container-title{border-bottom:1px solid var(--color-border);font-size:1.2rem;font-weight:550;grid-column:1/-1;letter-spacing:.025em;margin-bottom:calc(var(--grid-gap)/2);padding-bottom:12px;text-transform:uppercase}.gh-container:not(:has(.gh-card)) .gh-container-title{display:none}.gh-container .gh-feed{gap:var(--grid-gap)}.gh-container .gh-card-meta:not(:empty){margin-top:16px}.gh-container.is-list .gh-feed{container-name:list-feed;container-type:inline-size;display:flex;flex-direction:column}.gh-container.is-list .gh-card-link{align-items:center;flex-direction:row;gap:24px}.gh-container.is-list .no-image .gh-card-link{padding-block:20px}.gh-container.is-list .gh-card-image{aspect-ratio:1.618033;flex-shrink:0;width:220px}@container list-feed (width < 600px){.gh-container.is-list .gh-card-image{width:160px}}.gh-container.is-list .gh-card:not(.no-image) .gh-card-wrapper{max-width:600px}.gh-container.is-list .gh-card-title{--factor:1.05}.gh-container.is-list .no-image .gh-card-title{--factor:1.2}.gh-container.is-list .gh-card-excerpt{margin-top:6px}.gh-container.is-list .gh-card+.gh-card:before{background-color:var(--color-border);content:"";height:1px;left:0;position:absolute;top:calc(var(--grid-gap)/-2);width:100%}.home-template .gh-container.is-list .gh-card:first-child:before{display:none}@media (max-width:767px){.gh-container.is-list .gh-card-link{align-items:flex-start;flex-direction:column}.gh-container.is-list .gh-card-image{width:100%}}.gh-container.is-grid .gh-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));overflow:hidden;row-gap:calc(var(--grid-gap)*1.5)}.gh-container.is-grid .gh-card:before{height:1px;right:calc(var(--grid-gap)/-2);top:calc(var(--grid-gap)/-2)}.gh-container.is-grid .gh-card:after,.gh-container.is-grid .gh-card:before{background-color:var(--color-border);content:"";left:calc(var(--grid-gap)/-2);position:absolute}.gh-container.is-grid .gh-card:after{height:100%;top:0;width:1px}@media (max-width:767px){.gh-container.is-grid .gh-feed{grid-template-columns:repeat(2,1fr)}}@media (max-width:576px){.gh-container.is-grid .gh-feed{display:flex;flex-direction:column}}.gh-container.is-list.no-image .gh-card-image{display:none}.gh-sidebar-inner{position:sticky;top:calc(var(--grid-gap)/2)}.gh-sidebar-title{border-bottom:1px solid var(--color-border);font-size:1.2rem;font-weight:550;grid-column:1/-1;letter-spacing:.025em;margin-bottom:calc(var(--grid-gap)/2);padding-bottom:12px;text-transform:uppercase}.gh-about{align-items:center;background-color:var(--color-lighter-gray);display:flex;flex-direction:column;justify-content:center;min-height:380px;padding:48px 24px;text-align:center}.gh-about-icon{border-radius:50%;height:60px;margin-bottom:24px;width:60px}.gh-about-title{font-size:calc(2.4rem*var(--factor, 1));font-weight:700;letter-spacing:-.019em}.gh-about-description{font-size:1.45rem;line-height:1.4;margin-top:12px}.gh-about .gh-button{margin-top:32px}.gh-recommendations{margin-top:48px}.gh-recommendations .recommendations{display:flex;flex-direction:column;gap:26px;list-style-type:none;margin:0;padding:0}.gh-recommendations .recommendation:first-child{margin-top:4px}.gh-recommendations .recommendation a{display:grid;gap:4px 12px;grid-template-columns:24px auto}.gh-recommendations .recommendation a:hover{opacity:1}.gh-recommendations .recommendation-favicon{border-radius:4px;grid-row:span 2;width:100%}.gh-recommendations .recommendation-title{font-size:1.5rem;font-weight:650;letter-spacing:-.009em;margin-top:-2px}.gh-recommendations .recommendation a:hover .recommendation-title{opacity:.8}.gh-recommendations .recommendation-url{color:var(--color-secondary-text);font-size:1.4rem;line-height:1.25;order:1;overflow:hidden;text-overflow:ellipsis}.gh-recommendations .recommendation-description{color:var(--color-secondary-text);display:-webkit-box;display:none;font-size:1.4rem;grid-column:2;line-height:1.4;overflow-y:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.gh-recommendations button{align-items:center;background-color:transparent;border:0;cursor:pointer;display:inline-flex;font-size:1.2rem;font-weight:550;gap:2px;letter-spacing:.025em;margin-top:24px;padding:0;text-transform:uppercase}.gh-recommendations button svg{margin-top:-1px;width:12px}.gh-recommendations button:hover{opacity:.8}.gh-article{--container-width:1120px;word-break:break-word}.gh-article-header{margin:clamp(40px,3.64vw + 25.45px,72px) 0 40px}.gh-article-tag{color:var(--ghost-accent-color);font-size:1.3rem;font-weight:500;letter-spacing:.01em;margin-bottom:12px;text-transform:uppercase}.gh-article-title{font-size:calc(clamp(3.4rem, 1.36vw + 2.85rem, 4.6rem)*var(--factor, 1));letter-spacing:-.022em;line-height:1.1}.gh-article-excerpt{font-size:clamp(1.5rem,.45vw + 1.32rem,1.9rem);letter-spacing:-.018em;line-height:1.4;margin-top:clamp(12px,.45vw + 10.18px,16px);max-width:720px}.gh-article-meta{align-items:center;display:flex;gap:8px;margin-left:6px;margin-top:20px}.gh-article-author-image{display:flex;margin-right:8px}.gh-article-author-image a{background-color:var(--color-light-gray);border:3px solid var(--background-color);border-radius:50%;height:56px;margin:0 -8px;overflow:hidden;position:relative;width:56px}.gh-article-author-image a:first-child{z-index:10}.gh-article-author-image a:nth-child(2){z-index:9}.gh-article-author-image a:nth-child(3){z-index:8}.gh-article-author-image :is(img,svg){height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.gh-article-meta-wrapper{display:flex;flex-direction:column;gap:4px}.gh-article-author-name{font-size:1.6rem;font-weight:650;letter-spacing:-.013em}.gh-article-meta-content{color:var(--color-secondary-text);font-size:1.35rem;font-weight:500;letter-spacing:-.006em;line-height:1.2}.gh-article-image{grid-column:wide;margin-top:40px}.gh-article-image img{width:100%}.page-template .gh-article-header{margin-block:72px 32px}.page-template .gh-content:only-child>:first-child:not(.kg-width-full){margin-top:64px}.page-template .gh-content>:last-child:not(.kg-width-full){margin-bottom:6vw}.page-template .gh-footer{margin-top:0}.gh-content{font-size:var(--content-font-size,1.7rem);letter-spacing:-.01em}.gh-content>*+*{margin-bottom:0;margin-top:calc(28px*var(--content-spacing-factor, 1))}.gh-content>.kg-width-full+.kg-width-full:not(.kg-width-full.kg-card-hascaption+.kg-width-full){margin-top:0}.gh-content>[id]:not(:first-child){margin-top:calc(56px*var(--content-spacing-factor, 1))}.post-template .gh-content.drop-cap>p:first-of-type:first-letter{float:left;font-size:3.1em;font-weight:700;line-height:1;margin:0 .2em 0 -1px}.has-serif-body.post-template .gh-content.drop-cap>p:first-of-type:first-letter{font-size:3.2em}.gh-content>[id]+p{margin-top:calc(12px*var(--content-spacing-factor, 1))}.gh-content>:is(hr,blockquote,iframe){margin-top:calc(48px*var(--content-spacing-factor, 1))!important;position:relative}.gh-content>:is(hr,blockquote,iframe)+*{margin-top:calc(48px*var(--content-spacing-factor, 1))!important}.gh-content h1{font-size:calc(2.2em*var(--factor, 1));letter-spacing:-.02em}.gh-content h2{font-size:calc(1.6em*var(--factor, 1));letter-spacing:-.02em}.gh-content h3{font-size:calc(1.3em*var(--factor, 1));letter-spacing:-.017em}.gh-content a{color:var(--ghost-accent-color);text-decoration:underline}.gh-content .kg-callout-card .kg-callout-text,.gh-content .kg-toggle-card .kg-toggle-content>:is(ul,ol,p){font-size:.95em}.has-serif-body .gh-content .kg-callout-text,.has-serif-body .gh-content .kg-toggle-content>ol,.has-serif-body .gh-content .kg-toggle-content>p,.has-serif-body .gh-content .kg-toggle-content>ul,.has-serif-body .gh-content>blockquote,.has-serif-body .gh-content>dl,.has-serif-body .gh-content>ol,.has-serif-body .gh-content>p,.has-serif-body .gh-content>ul{font-family:var(--font-serif-alt)}.gh-content :is(ul,ol){padding-left:28px}.gh-content :is(li+li,li :is(ul,ol)){margin-top:8px}.gh-content ol ol li{list-style-type:lower-alpha}.gh-content ol ol ol li{list-style-type:lower-roman}.gh-content hr{background-color:var(--color-border);border:0;height:1px;width:100%}.gh-content .gh-table{overflow-x:scroll;-webkit-overflow-scrolling:touch}.gh-content .gh-table table{border-collapse:collapse;border-spacing:0;font-family:var(--font-sans);font-size:1.5rem;vertical-align:top;white-space:nowrap;width:100%}.gh-content .gh-table table th{color:var(--color-darkgrey);font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase}.gh-content .gh-table table :is(th,td),.gh-content .gh-table table td{border-bottom:1px solid var(--color-border);padding:6px 12px}.gh-content .gh-table table :is(th,td):first-child{padding-left:0}.gh-content .gh-table table :is(th,td):last-child{padding-right:0}.gh-content pre{border-radius:6px;font-size:1.5rem;line-height:1.5em;overflow:auto;padding:16px}.gh-content :not(pre)>code,.gh-content pre{background:var(--color-lighter-gray);font-family:var(--font-mono)}.gh-content :not(pre)>code{border-radius:.25em;font-size:.95em;font-weight:400;line-height:1em;padding:.15em .4em;vertical-align:baseline}.gh-content :not(.kg-card):not(table):not([id])+:is(.kg-card,table){margin-top:calc(48px*var(--content-spacing-factor, 1))}.gh-content :is(.kg-card,table)+:not(.kg-card):not(table):not([id]){margin-top:calc(48px*var(--content-spacing-factor, 1))}.gh-content .kg-card.kg-width-full+:not(.kg-card):not([id]),.gh-content :not(.kg-card):not([id])+.kg-card.kg-width-full{margin-top:calc(68px*var(--content-spacing-factor, 1))}.kg-image{margin-left:auto;margin-right:auto}.kg-embed-card{align-items:center;display:flex;flex-direction:column;width:100%}.kg-gallery-image,.kg-image[width][height]{cursor:pointer}.kg-gallery-image a:hover,.kg-image-card a:hover{opacity:1!important}.kg-card.kg-toggle-card .kg-toggle-heading-text{font-size:2rem;font-weight:700}.has-serif-title .kg-toggle-card .kg-toggle-heading-text{font-family:var(--font-serif)}.has-mono-title .kg-toggle-card .kg-toggle-heading-text{font-family:var(--font-mono)}.kg-callout-card.kg-card{border-radius:.25em}.kg-callout-card-accent a{text-decoration:underline}blockquote:not([class]){border-left:4px solid var(--ghost-accent-color);padding-left:2rem}blockquote.kg-blockquote-alt{color:var(--color-secondary-text);font-style:normal;font-weight:400}.kg-card.kg-button-card .kg-btn{font-size:1em;height:unset;line-height:1.2em;padding:.6em 1.2em;text-align:center}.has-serif-title .kg-card.kg-header-card h2.kg-header-card-header{font-family:var(--font-serif)}.has-mono-title .kg-card.kg-header-card h2.kg-header-card-header{font-family:var(--font-mono)}.has-serif-body .kg-header-card h3.kg-header-card-subheader{font-family:var(--font-serif)}.kg-bookmark-card .kg-bookmark-container{border-radius:.25em!important}.kg-bookmark-card .kg-bookmark-container:hover{opacity:1}.kg-bookmark-card a.kg-bookmark-container,.kg-bookmark-card a.kg-bookmark-container:hover{background:var(--background-color)!important;color:var(--color-darker-gray)!important}.kg-bookmark-card .kg-bookmark-content{padding:1.15em}.kg-bookmark-card .kg-bookmark-title{font-size:.9em}.kg-bookmark-card .kg-bookmark-description{font-size:.8em;margin-top:.3em;max-height:none}.kg-bookmark-card .kg-bookmark-metadata{font-size:.8em}.kg-bookmark-card .kg-bookmark-thumbnail img{border-radius:0 .2em .2em 0}.kg-product-card.kg-card .kg-product-card-image{margin-bottom:12px}.kg-product-card.kg-card a.kg-product-card-button{height:2.8em;margin-top:12px}.has-serif-title .kg-product-card.kg-card .kg-product-card-title{font-family:var(--font-serif)}.has-mono-title .kg-product-card.kg-card .kg-product-card-title{font-family:var(--font-mono)}.has-serif-body .kg-product-card-description :is(p,ul,ol){font-family:var(--font-serif-alt)}.kg-file-card.kg-card .kg-file-card-container{padding:.6em}.kg-file-card.kg-card .kg-file-card-contents{margin:4px 8px 6px}.kg-file-card.kg-card .kg-file-card-metadata{font-size:.9em}.kg-file-card.kg-card .kg-file-card-filesize:before{margin-left:6px;margin-right:6px}figcaption{font-size:1.4rem;margin-top:12px;text-align:center}.kg-card.kg-width-full figcaption{padding:0 16px}figcaption a{color:var(--ghost-accent-color);text-decoration:underline}.gh-comments{margin-top:48px}.post-template .gh-container{margin-top:120px}.post-template .gh-container-inner{display:block}.post-template .gh-container.is-grid .gh-feed{grid-template-columns:repeat(4,1fr)}.post-template .gh-container .gh-container-title{display:block}.gh-archive{display:grid;gap:var(--grid-gap);grid-template-columns:repeat(16,1fr);margin-block:80px 24px}.gh-archive.has-image{margin-top:48px}.gh-archive-inner{border-bottom:1px solid var(--color-border);display:grid;gap:var(--grid-gap);grid-column:1/-1;grid-template-columns:1fr 1fr;padding-bottom:clamp(40px,2.73vw + 29.09px,64px)}.gh-archive.has-image .gh-archive-inner{align-items:center;grid-column:1/-1}.gh-archive:not(.has-sidebar):not(.has-image) .gh-archive-inner{grid-column:3/span 12}.gh-archive .gh-article-image{grid-column:auto;margin-top:0}:is(.tag-template,.author-template) .gh-container{margin-top:0}.author-template .gh-archive-inner{display:flex;flex-direction:row-reverse;gap:24px;justify-content:flex-end}.author-template .gh-article-image{border-radius:50%;height:120px;margin-top:0;-o-object-fit:cover;object-fit:cover;width:120px}.author-template .gh-article-title{font-size:3.6rem}.gh-author-meta{color:var(--color-secondary-text);display:flex;font-size:1.5rem;font-weight:550;gap:10px;margin-top:14px}.gh-author-meta a{color:inherit}.gh-author-social{align-items:center;display:flex;gap:10px;padding-left:3px}.gh-author-social svg{height:20px;width:20px}@media (max-width:1199px){.gh-archive{display:block}}@media (max-width:767px){.gh-archive-inner{align-items:flex-start;display:flex}.author-template .gh-archive-inner,.gh-archive-inner{flex-direction:column-reverse}}.has-serif-title{--factor:1.15}.has-mono-title{--factor:1.1}.has-sans-title :is(.is-title,.gh-content :is(h2,h3)){font-family:var(--font-sans)}.has-serif-title :is(.is-title,.gh-content :is(h2,h3)){font-family:var(--font-serif);font-weight:550}.has-mono-title :is(.is-title,.gh-content :is(h2,h3)){font-family:var(--font-mono)}.has-sans-body .is-body{font-family:var(--font-sans)}.has-serif-body .is-body{font-family:var(--font-serif-alt)}.has-serif-title .gh-header.is-classic .gh-header-title{font-weight:550;letter-spacing:-.015em}.has-mono-title .gh-header.is-classic .gh-header-title{letter-spacing:-.01em}.has-serif-title .gh-form{border-radius:0}.has-serif-title .gh-card-title{font-size:calc(2rem*var(--factor, 1));letter-spacing:-.006em;line-height:1.15}.has-serif-title .gh-featured-feed .gh-card-title{font-size:calc(1.6rem*var(--factor, 1))}.has-mono-title .gh-featured-feed .gh-card-title{font-size:calc(1.5rem*var(--factor, 1));letter-spacing:0}.has-serif-title .gh-header.is-highlight .gh-featured-feed .gh-card-title{font-size:clamp(1.6rem,.23vw + 1.51rem,1.8rem)}.has-mono-title .gh-card-title{font-size:calc(1.8rem*var(--factor, 1));line-height:1.2}.has-serif-title .gh-about-title{letter-spacing:-.009em}.has-serif-title .gh-article-title,.has-serif-title .gh-footer-signup-header{letter-spacing:-.019em}.has-serif-body{--content-font-size:1.9rem}.has-serif-body .gh-card-excerpt{font-size:1.65rem;letter-spacing:.0005em;line-height:1.4}.has-serif-body .gh-header.is-highlight .gh-card:first-child .gh-card-excerpt,.has-serif-body .gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-excerpt{font-size:1.8rem;letter-spacing:-.001em}.has-serif-title .gh-header.is-highlight .gh-header-left .gh-card-title,.has-serif-title .gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-title{font-size:clamp(3.2rem,1.82vw + 2.47rem,4.9rem);font-weight:550}.has-serif-body .gh-about-description{font-size:1.6rem}.has-serif-body .gh-article-excerpt,.has-serif-body .gh-footer-signup-subhead{letter-spacing:0}.has-serif-title :is(.gh-button,.gh-form,.gh-form-input){border-radius:0}.has-mono-title :is(.gh-button){border-radius:0}.has-mono-title :is(.gh-form){border-radius:0}.has-serif-title .gh-cta-title{font-size:4.8rem}.gh-footer{color:var(--color-darker-gray);font-size:1.5rem;margin-top:12vw}.gh-footer a:not(.gh-button){color:inherit}.gh-footer.has-accent-color{background-color:var(--ghost-accent-color)}.gh-footer.has-accent-color .gh-footer-bar{border-top:0}.gh-footer.has-accent-color .gh-button{background-color:#fff;color:#15171a}.gh-footer-bar{align-items:center;border-block:1px solid var(--color-border);-moz-column-gap:32px;column-gap:32px;display:grid;font-weight:550;grid-template-columns:1fr auto 1fr;margin-bottom:100px;padding-block:28px}.gh-footer-logo{font-size:calc(2.4rem*var(--factor, 1));font-weight:725;letter-spacing:-.015em;position:relative;white-space:nowrap}.gh-footer-logo img{max-height:40px}.gh-footer-menu .nav{display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:center;list-style-type:none;margin:0;padding:0}.gh-footer-copyright{text-align:right;white-space:nowrap}.gh-footer-copyright a{text-decoration:underline}.gh-footer-signup{align-items:center;display:flex;flex-direction:column;padding-bottom:160px;text-align:center}.gh-footer-signup-header{font-size:calc(clamp(2.8rem,1.36vw + 2.25rem,4rem)*var(--factor, 1));font-weight:700;letter-spacing:-.03em}.gh-footer-signup-subhead{font-size:1.8rem;font-weight:450;letter-spacing:-.014em;line-height:1.4;margin-top:12px;max-width:640px;opacity:.75}.gh-footer-signup .gh-form{margin-top:40px}@media (max-width:991px){.gh-footer-bar{display:flex;flex-direction:column;gap:20px}}.pswp{backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:hidden;position:absolute;top:0;touch-action:none;width:100%;z-index:3999999;-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{backface-visibility:hidden;background-color:rgba(0,0,0,.85);opacity:0;transform:translateZ(0);transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp__bg,.pswp__scroll-wrap{height:100%;left:0;position:absolute;top:0;width:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{backface-visibility:hidden;bottom:0;left:0;position:absolute;right:0;top:0;touch-action:none}.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;transform-origin:left top;transition:transform 333ms cubic-bezier(.4,0,.22,1);width:100%}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__item{bottom:0;overflow:hidden;right:0}.pswp__img,.pswp__item{left:0;position:absolute;top:0}.pswp__img{height:auto;width:auto}.pswp__img--placeholder{backface-visibility:hidden}.pswp__img--placeholder--blank{background:var(--color-black)}.pswp--ie .pswp__img{height:auto!important;left:0;top:0;width:100%!important}.pswp__error-msg{color:var(--color-secondary-text);font-size:14px;left:0;line-height:16px;margin-top:-8px;position:absolute;text-align:center;top:50%;width:100%}.pswp__error-msg a{color:var(--color-secondary-text);text-decoration:underline}.pswp__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;display:block;float:right;height:44px;margin:0;overflow:visible;padding:0;position:relative;transition:opacity .2s;width:44px}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{opacity:.9;outline:none}.pswp__button::-moz-focus-inner{border:0;padding:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:url(../images/default-skin.png) 0 0 no-repeat;background-size:264px 88px;height:44px;width:44px}@media (-webkit-min-device-pixel-ratio:1.09375),(-webkit-min-device-pixel-ratio:1.1),(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{background-position:-88px 0;display:none}.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{background:none;height:100px;margin-top:-50px;position:absolute;top:50%;width:70px}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";height:30px;position:absolute;top:35px;width:32px}.pswp__button--arrow--left:before{background-position:-138px -44px;left:6px}.pswp__button--arrow--right:before{background-position:-94px -44px;right:6px}.pswp__counter{color:var(--color-white);font-size:11px;font-weight:700;height:44px;left:0;line-height:44px;padding:0 15px;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__caption{bottom:0;left:0;min-height:44px;position:absolute;width:100%}.pswp__caption__center{color:var(--color-white);font-size:11px;line-height:1.6;margin:0 auto;max-width:420px;padding:25px 15px 30px;text-align:center}.pswp__caption__center .post-caption-title{font-size:15px;font-weight:500;margin-bottom:7px;text-transform:uppercase}.pswp__caption__center .post-caption-meta-item+.post-caption-meta-item:before{content:"\02022";padding:0 4px}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{direction:ltr;height:44px;left:50%;margin-left:-22px;opacity:0;position:absolute;top:0;transition:opacity .25s ease-out;width:44px;will-change:opacity}.pswp__preloader__icn{height:20px;margin:12px;width:20px}.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{background:none;height:14px;left:15px;margin:0;opacity:.75;position:absolute;top:15px;width:14px}.pswp--css_animation .pswp__preloader__cut{height:14px;overflow:hidden;position:relative;width:7px}.pswp--css_animation .pswp__preloader__donut{background:none;border-bottom:2px solid transparent;border-left:2px solid transparent;border-radius:50%;border-right:2px solid var(--color-white);border-top:2px solid var(--color-white);box-sizing:border-box;height:14px;left:0;margin:0;position:absolute;top:0;width:14px}@media screen and (max-width:1024px){.pswp__preloader{float:right;left:auto;margin:0;position:relative;top:auto}}@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{opacity:1;visibility:visible;z-index:1550;-webkit-font-smoothing:auto}.pswp__top-bar{height:44px;left:0;position:absolute;top:0;width:100%}.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=source.css.map */
\ No newline at end of file
diff --git a/assets/built/source.css.map b/assets/built/source.css.map
new file mode 100644
index 0000000..9257cc4
--- /dev/null
+++ b/assets/built/source.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["ko-fi.css","prism.min.css","screen.css"],"names":[],"mappings":"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","file":"source.css","sourcesContent":["/*\n Ko-fi Button Widget CSS.\n*/\n\nimg.kofiimg {\n display: initial;\n vertical-align: middle;\n height: 13px;\n width: 20px;\n padding-top: 0;\n padding-bottom: 0;\n border: none;\n margin-top: 0;\n margin-right: 5px;\n margin-left: 0;\n margin-bottom: 3px;\n content: url(../images/ko-fi/cup-border.png);\n}\n\n.kofiimg:after {\n vertical-align: middle;\n height: 25px;\n padding-top: 0;\n padding-bottom: 0;\n border: none;\n margin-top: 0;\n margin-right: 6px;\n margin-left: 0;\n margin-bottom: 4px;\n content: url(../images/ko-fi/whitelogo.svg);\n}\n\n.kofi-btn-container {\n --button-background-color: #fff;\n --button-background-color-active: rgba(255, 255, 255, 0.8);\n --button-text-color: #15171a;\n --button-text-color-active: #15171a;\n\n display: inline-block;\n white-space: nowrap;\n min-width: 160px;\n}\n\na.kofi-button {\n background-color: var(--button-background-color);\n box-shadow: 1px 1px 0px rgba(0, 0, 0, 0.2);\n line-height: 36px;\n min-width: 150px;\n display: inline-block;\n padding: 2px 12px;\n text-align: center;\n border-radius: 7px;\n color: var(--button-text-color);\n cursor: pointer;\n overflow-wrap: break-word;\n vertical-align: middle;\n border: 0 none #fff;\n /* font-family: 'Quicksand', Helvetica, Century Gothic, sans-serif; */\n font-family: var(--font-sans);\n text-decoration: none;\n text-shadow: none;\n font-weight: 700;\n font-size: 14px;\n}\n\na.kofi-button:hover,\na.kofi-button:active,\na.kofi-button:visited {\n color: var(--button-text-color);\n text-decoration: none;\n background: var(--button-background-color-active);\n}\n\na.kofi-button:hover span.kofitext,\na.kofi-button:active span.kofitext {\n text-decoration: none;\n color: var(--button-text-color-active);\n opacity: 1;\n}\n\nspan.kofitext {\n color: var(--button-text-color);\n letter-spacing: -0.15px;\n text-wrap: none;\n vertical-align: middle;\n line-height: 33px;\n padding: 0;\n text-align: center;\n text-decoration: none;\n text-shadow: 0 1px 1px rgba(34, 34, 34, 0.05);\n}\n\nspan.kofitext img.kofiimg {\n height: 15px;\n width: 22px;\n display: initial;\n animation: kofi-wiggle 3s infinite;\n}\n\n@keyframes kofi-wiggle {\n 0% {\n transform: rotate(0) scale(1);\n }\n\n 60% {\n transform: rotate(0) scale(1);\n }\n\n 75% {\n transform: rotate(0) scale(1.12);\n }\n\n 80% {\n transform: rotate(0) scale(1.1);\n }\n\n 84% {\n transform: rotate(-10deg) scale(1.1);\n }\n\n 88% {\n transform: rotate(10deg) scale(1.1);\n }\n\n 92% {\n transform: rotate(-10deg) scale(1.1);\n }\n\n 96% {\n transform: rotate(10deg) scale(1.1);\n }\n\n 100% {\n transform: rotate(0) scale(1);\n }\n}","/* PrismJS 1.29.0\nhttps://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+apacheconf+aspnet+bash+csharp+diff+git+go+ini+lua+python+sql+typescript+xml-doc+yaml&plugins=diff-highlight */\ncode[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}\npre.diff-highlight>code .token.deleted:not(.prefix),pre>code.diff-highlight .token.deleted:not(.prefix){background-color:rgba(255,0,0,.1);color:inherit;display:block}pre.diff-highlight>code .token.inserted:not(.prefix),pre>code.diff-highlight .token.inserted:not(.prefix){background-color:rgba(0,255,128,.1);color:inherit;display:block}\n\n","/* Table of contents\n/* ------------------------------------------------------------\n\nThis is a development CSS file which is built to a minified\nproduction stylesheet in assets/built/screen.css\n\n1. Variables\n2. Fonts\n3. Resets\n4. Globals\n5. Layout\n6. Navigation\n 6.1. Navigation styles\n 6.2. Navigation layouts\n 6.3. Dropdown menu\n 6.4. Mobile menu\n7. Card\n8. Header\n 8.1. Magazine layout\n 8.2. Highlight layout\n 8.3. Classic layout\n9. CTA\n10. Featured posts\n11. Container\n 11.1. With sidebar\n 11.2. Without sidebar\n12. Post list\n 12.1. List style\n 12.2. Grid style\n 12.3. No image list\n13. Sidebar\n14. Post/page\n 14.1. Article\n 14.2. Page template\n 14.3. Page without header\n15. Content\n16. Cards\n17. Comments\n18. Recent posts\n19. Archive\n20. Design settings\n21. Footer\n 21.1. Footer styles\n 21.2. Footer bar\n 21.3. Footer signup\n22. Lightbox\n\n*/\n\n/* 1. Variables\n/* ---------------------------------------------------------- */\n\n:root {\n --color-white: #fff;\n --color-lighter-gray: rgb(0 0 0 / 0.05);\n --color-light-gray: #e6e6e6;\n --color-mid-gray: #ccc;\n --color-dark-gray: #444;\n --color-darker-gray: #15171a;\n --color-black: #000;\n --color-primary-text: var(--color-darker-gray);\n --color-secondary-text: rgb(0 0 0 / 0.55);\n --color-border: rgb(0 0 0 / 0.08);\n --color-dark-border: rgb(0 0 0 / 0.55);\n --font-sans: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n --font-serif: \"EB Garamond\", Georgia, Times, serif;\n --font-serif-alt: Georgia, Times, serif;\n --font-mono: \"JetBrains Mono\", Menlo, Consolas, Monaco, \"Liberation Mono\", \"Lucida Console\", monospace;\n --container-width: 1320px;\n --container-gap: clamp(24px, 1.7032rem + 1.9355vw, 48px);\n --grid-gap: 42px;\n}\n\n:root.has-light-text,\n:is(.gh-navigation, .gh-footer).has-accent-color {\n --color-lighter-gray: rgb(255 255 255 / 0.1);\n --color-darker-gray: #fff;\n --color-secondary-text: rgb(255 255 255 / 0.64);\n --color-border: rgb(255 255 255 / 0.15);\n --color-dark-border: rgb(255 255 255 / 0.5);\n}\n\n/* 2. Fonts\n/* ---------------------------------------------------------- */\n\n/* Fonts are preloaded and defined in default.hbs to avoid layout shift */\n\n/* 3. Resets\n/* ---------------------------------------------------------- */\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n* {\n margin: 0;\n}\n\nhtml {\n font-size: 62.5%;\n}\n\nbody {\n line-height: 1.6;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nimg, picture, video, canvas, svg {\n display: block;\n height: auto;\n max-width: 100%;\n}\n\niframe {\n display: block;\n}\n\ninput, button, textarea, select {\n font: inherit;\n}\n\np, h1, h2, h3, h4, h5, h6 {\n overflow-wrap: break-word;\n}\n\nh1, h2, h3, h4, h5, h6 {\n line-height: 1.2;\n}\n\n/* 4. Globals\n/* ---------------------------------------------------------- */\n\nbody {\n font-family: var(--font-sans);\n font-size: 1.6rem;\n background-color: var(--background-color);\n color: var(--color-primary-text);\n}\n\na {\n color: var(--color-darker-gray);\n text-decoration: none;\n}\n\na:hover {\n opacity: 0.8;\n}\n\n.gh-button {\n display: inline-flex;\n gap: 0.4em;\n align-items: center;\n justify-content: center;\n padding: 0.8em 1.4em;\n font-size: 1.5rem;\n font-weight: 600;\n letter-spacing: -0.004em;\n line-height: 1;\n color: var(--color-white);\n cursor: pointer;\n background-color: var(--ghost-accent-color);\n border: 0;\n border-radius: 100px;\n}\n\n.gh-button:hover {\n opacity: 0.95;\n}\n\n.gh-icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n color: var(--color-darker-gray);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: none;\n}\n\n.gh-icon-button:hover :is(svg, span) {\n opacity: 0.8;\n}\n\n.gh-icon-button svg {\n width: 20px;\n height: 20px;\n}\n\n.gh-form {\n display: flex;\n align-items: center;\n position: relative;\n max-width: 560px;\n width: 100%;\n height: 56px;\n font-size: 1.7rem;\n font-weight: 450;\n letter-spacing: -0.008em;\n border-radius: 40px;\n background-color: var(--color-lighter-gray);\n transition: background-color 0.2s ease;\n}\n\n.gh-form.success {\n pointer-events: none;\n}\n\n.gh-form.error {\n box-shadow: 0 0 0 1px red;\n}\n\n.gh-form:hover {\n background-color: rgb(0 0 0 / 0.065);\n}\n\n.has-light-text .gh-form:hover,\n.gh-footer.has-accent-color .gh-form:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.gh-form-input {\n position: absolute;\n inset: 0;\n padding-inline: 26px;\n width: 100%;\n height: 100%;\n font-size: inherit;\n letter-spacing: inherit;\n line-height: 1.1;\n border: 0;\n border-radius: 40px;\n background-color: transparent;\n outline: none;\n transition: 0.3s ease-in-out;\n}\n\n.gh-form-input::placeholder,\nbutton.gh-form-input {\n color: rgb(0 0 0 / 0.3);\n}\n\n:is(.has-serif-title, .has-mono-title) .gh-form-input {\n padding-inline: 20px;\n}\n\n.gh-form.gh-form.success .gh-form-input {\n opacity: 0.5;\n}\n\n.has-light-text .gh-form-input,\n.gh-footer.has-accent-color .gh-form-input {\n color: #fff;\n}\n\n.has-light-text .gh-form-input::placeholder,\n.has-light-text button.gh-form-input,\n.gh-footer.has-accent-color .gh-form-input::placeholder {\n color: rgb(255 255 255 / 0.55);\n}\n\n.gh-header.is-classic.has-image .gh-form-input {\n color: #15171a;\n}\n\n.gh-header.is-classic.has-image .gh-form-input::placeholder,\n.gh-header.is-classic.has-image button.gh-form-input,\n.gh-header.is-classic.has-image .gh-form > svg {\n color: rgb(0 0 0 / 0.5);\n}\n\nbutton.gh-form-input {\n padding-inline-start: 56px;\n text-align: left;\n color: var(--color-secondary-text);\n cursor: pointer;\n}\n\n:is(.has-serif-title,.has-mono-title) button.gh-form-input {\n padding-inline-start: 50px;\n}\n\n.gh-form .gh-button {\n position: absolute;\n right: 6px;\n padding-inline: 32px;\n height: 44px;\n font-size: inherit;\n}\n\n.gh-form > svg {\n position: relative;\n left: 22px;\n width: 20px;\n height: 20px;\n color: var(--color-secondary-text);\n}\n\n:is(.has-serif-title,.has-mono-title) .gh-form > svg {\n left: 16px;\n}\n\n.gh-form .gh-button svg {\n display: none;\n position: absolute;\n margin-top: 1px;\n}\n\n.gh-form:is(.loading, .success) .gh-button span {\n visibility: hidden;\n}\n\n.gh-form.loading .gh-button svg:first-of-type {\n display: block;\n}\n\n.gh-form.success .gh-button svg:last-of-type {\n display: block;\n}\n\n.gh-form [data-members-error] {\n position: absolute;\n top: 100%;\n margin-top: 10px;\n width: 100%;\n font-size: 1.4rem;\n line-height: 1.4;\n}\n\n@media (max-width: 576px) {\n .gh-form {\n font-size: 1.6rem;\n }\n\n .gh-form .gh-button {\n padding-inline: 12px;\n }\n\n .gh-form .gh-button span span {\n display: none;\n }\n\n .gh-form .gh-button span svg {\n display: inline;\n position: static;\n margin-top: 2px;\n width: 20px;\n height: 20px;\n }\n}\n\n/* 5. Layout\n/* ---------------------------------------------------------- */\n\n.gh-viewport {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.gh-outer {\n padding: 0 max(4vmin, 20px);\n}\n\n.gh-outer .gh-outer {\n padding: 0;\n}\n\n.gh-inner {\n margin: 0 auto;\n max-width: var(--container-width);\n width: 100%;\n}\n\n.gh-main {\n flex-grow: 1;\n}\n\n.gh-canvas,\n.kg-width-full.kg-content-wide {\n --main: min(var(--content-width, 720px), 100% - var(--container-gap) * 2);\n --wide: minmax(0, calc((var(--container-width, 1200px) - var(--content-width, 720px)) / 2));\n --full: minmax(var(--container-gap), 1fr);\n\n display: grid;\n grid-template-columns:\n [full-start] var(--full)\n [wide-start] var(--wide)\n [main-start] var(--main) [main-end]\n var(--wide) [wide-end]\n var(--full) [full-end];\n}\n\n.gh-canvas > * {\n grid-column: main;\n}\n\n.kg-width-wide,\n.kg-content-wide > div {\n grid-column: wide;\n}\n\n.kg-width-full {\n grid-column: full;\n}\n\n/* 6. Navigation\n/* ---------------------------------------------------------- */\n\n.gh-navigation {\n height: 100px;\n font-size: 1.5rem;\n font-weight: 550;\n background-color: var(--background-color);\n color: var(--color-darker-gray);\n}\n\n.gh-navigation :is(.gh-navigation-logo, a:not(.gh-button), .gh-icon-button) {\n color: inherit;\n}\n\n.gh-navigation-inner {\n display: grid;\n grid-auto-flow: row dense;\n column-gap: 24px;\n align-items: center;\n height: 100%;\n}\n\n.gh-navigation-brand {\n line-height: 1;\n}\n\n.gh-navigation-logo {\n position: relative;\n font-size: calc(2.4rem * var(--factor, 1));\n font-weight: 725;\n letter-spacing: -0.015em;\n white-space: nowrap;\n}\n\n.gh-navigation-logo img {\n max-height: 40px;\n}\n\n.gh-navigation-menu {\n display: flex;\n gap: 24px;\n align-items: center;\n}\n\n.gh-navigation .nav {\n display: inline-flex;\n gap: 28px;\n align-items: center;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n list-style: none;\n}\n\n.gh-navigation .gh-more-toggle {\n position: relative;\n margin: 0 -6px;\n font-size: inherit;\n text-transform: inherit;\n}\n\n.gh-navigation .gh-more-toggle svg {\n width: 24px;\n height: 24px;\n}\n\n.gh-navigation-actions {\n display: flex;\n gap: 24px;\n align-items: center;\n justify-content: flex-end;\n background-color: var(--background-color);\n}\n\n.gh-navigation.has-accent-color .gh-navigation-actions {\n background-color: var(--ghost-accent-color);\n}\n\n.gh-navigation-members {\n display: flex;\n gap: 20px;\n align-items: center;\n white-space: nowrap;\n}\n\n.gh-navigation-members .gh-button {\n font-size: inherit;\n font-weight: 600;\n}\n\n.gh-search {\n margin-right: -2px;\n margin-left: -2px;\n}\n\n@media (max-width: 767px) {\n .gh-navigation-logo {\n white-space: normal;\n }\n\n .gh-navigation-members {\n flex-direction: column-reverse;\n gap: 16px;\n width: 100%;\n }\n\n .gh-navigation-actions .gh-search {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .gh-navigation-brand .gh-search {\n display: none;\n }\n\n .gh-navigation:not(.is-dropdown-loaded) .gh-navigation-menu .nav > li {\n opacity: 0;\n }\n}\n\n/* 6.1. Navigation styles */\n\n.gh-navigation.has-accent-color {\n background-color: var(--ghost-accent-color);\n}\n\n.gh-navigation.has-accent-color .gh-button {\n background-color: #fff;\n color: #15171a;\n}\n\n/* 6.2. Navigation layouts */\n\n/*\n======================================================================\nLOGO Home About Collection Author Portal Login Subscribe\n======================================================================\n*/\n\n.gh-navigation.is-left-logo .gh-navigation-inner {\n grid-template-columns: auto 1fr auto;\n}\n\n@media (min-width: 768px) {\n .gh-navigation.is-left-logo .gh-navigation-logo:not(:has(img)) {\n top: -2px;\n }\n}\n\n@media (min-width: 992px) {\n .gh-navigation.is-left-logo .gh-navigation-menu {\n margin-right: 100px;\n margin-left: 16px;\n }\n}\n\n/*\n======================================================================\nHome About Collection LOGO Login Subscribe\n======================================================================\n*/\n\n.gh-navigation.is-middle-logo .gh-navigation-inner {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.gh-navigation.is-middle-logo .gh-navigation-brand {\n grid-column-start: 2;\n}\n\n.gh-navigation.is-middle-logo .gh-navigation-actions {\n gap: 28px;\n}\n\n@media (min-width: 992px) {\n .gh-navigation.is-middle-logo .gh-navigation-menu {\n margin-right: 64px;\n }\n}\n\n/*\n======================================================================\nSearch LOGO Login Subscribe\n Home About Collection Author Portal\n======================================================================\n*/\n\n.gh-navigation.is-stacked {\n position: relative;\n height: auto;\n}\n\n.gh-navigation.is-stacked .gh-navigation-inner {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.gh-navigation.is-stacked .gh-navigation-brand {\n display: flex;\n align-items: center;\n grid-row-start: 1;\n grid-column-start: 2;\n min-height: 80px;\n}\n\n@media (max-width: 767px) {\n .gh-navigation.is-stacked .gh-navigation-brand {\n min-height: unset;\n }\n}\n\n@media (min-width: 992px) {\n .gh-navigation.is-stacked .gh-navigation-inner {\n padding: 0;\n }\n\n .gh-navigation.is-stacked .gh-navigation-brand {\n display: flex;\n align-items: center;\n height: 80px;\n }\n\n .gh-navigation.is-stacked .gh-navigation-menu {\n grid-row-start: 2;\n grid-column: 1 / 4;\n justify-content: center;\n height: 60px;\n margin: 0 48px;\n }\n\n .gh-navigation.is-stacked .gh-navigation-menu::before,\n .gh-navigation.is-stacked .gh-navigation-menu::after {\n position: absolute;\n top: 80px;\n left: 0;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: var(--color-border);\n }\n\n .gh-navigation.is-stacked .gh-navigation-menu::after {\n top: 140px;\n }\n\n .gh-navigation.is-stacked .gh-navigation-actions {\n grid-row-start: 1;\n grid-column: 1 / 4;\n justify-content: space-between;\n }\n\n .gh-navigation.is-stacked .gh-navigation-actions .gh-search {\n display: flex;\n gap: 10px;\n width: auto;\n }\n}\n\n/* 6.3. Dropdown menu */\n\n.gh-dropdown {\n position: absolute;\n top: 100%;\n right: -16px;\n z-index: 90;\n width: 200px;\n padding: 12px 0;\n margin-top: 24px;\n text-align: left;\n visibility: hidden;\n background-color: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgb(0 0 0 / 0.04), 0 7px 20px -5px rgb(0 0 0 / 0.15);\n opacity: 0;\n transition: opacity 0.3s, transform 0.2s;\n transform: translate3d(0, 6px, 0);\n}\n\n.gh-dropdown.is-left {\n right: auto;\n left: -16px;\n}\n\n.is-dropdown-mega .gh-dropdown {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-auto-flow: column;\n column-gap: 40px;\n width: auto;\n padding: 20px 32px;\n}\n\n.is-dropdown-open .gh-dropdown {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.gh-dropdown li a {\n display: block;\n padding: 7px 20px;\n line-height: 1.5;\n white-space: normal;\n color: #15171a !important;\n}\n\n.is-dropdown-mega .gh-dropdown li a {\n padding: 8px 0;\n}\n\n/* 6.4. Mobile menu */\n\n.gh-burger {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n display: none;\n margin-right: -7px;\n margin-left: 4px;\n}\n\n.gh-burger svg {\n width: 24px;\n height: 24px;\n}\n\n.gh-burger svg:last-child {\n display: none;\n}\n\n.is-open .gh-burger svg:first-child {\n display: none;\n}\n\n.is-open .gh-burger svg:last-child {\n display: block;\n}\n\n@media (max-width: 767px) {\n .gh-burger {\n display: flex;\n }\n\n #gh-navigation {\n height: 64px;\n }\n\n #gh-navigation .gh-navigation-inner {\n grid-template-rows: auto 1fr auto;\n grid-template-columns: 1fr;\n gap: 48px;\n }\n\n #gh-navigation .gh-navigation-brand {\n display: grid;\n grid-template-columns: 1fr auto auto;\n grid-column-start: 1;\n align-items: center;\n height: 64px;\n }\n\n #gh-navigation .gh-navigation-logo {\n font-size: 2.2rem;\n }\n\n #gh-navigation .gh-navigation-menu,\n #gh-navigation .gh-navigation-actions {\n position: fixed;\n justify-content: center;\n visibility: hidden;\n opacity: 0;\n }\n\n #gh-navigation .gh-navigation-menu {\n transition: none;\n transform: translateY(0);\n }\n\n #gh-navigation .nav {\n gap: 20px;\n align-items: center;\n line-height: 1.4;\n }\n\n #gh-navigation .nav a {\n font-size: 1.75rem;\n font-weight: 600;\n text-transform: none;\n }\n\n #gh-navigation .nav li {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n #gh-navigation .gh-navigation-actions {\n text-align: center;\n }\n\n #gh-navigation :is(.gh-button, a[data-portal=\"signin\"]) {\n opacity: 0;\n transform: translateY(8px);\n }\n\n #gh-navigation .gh-button {\n width: 100%;\n font-size: 1.75rem;\n text-transform: none;\n }\n\n #gh-navigation a[data-portal=\"signin\"] {\n font-size: 1.75rem;\n }\n\n #gh-main {\n transition: opacity 0.4s;\n }\n\n .is-open#gh-navigation {\n position: fixed;\n inset: 0;\n z-index: 3999999;\n height: 100%;\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n }\n\n .is-open#gh-navigation .gh-navigation-menu,\n .is-open#gh-navigation .gh-navigation-actions {\n position: static;\n visibility: visible;\n opacity: 1;\n }\n\n .is-open#gh-navigation .nav {\n display: flex;\n flex-direction: column;\n }\n\n .is-open#gh-navigation .nav li {\n opacity: 1;\n transition: transform 0.2s, opacity 0.2s;\n transform: translateY(0);\n }\n\n .is-open#gh-navigation .gh-navigation-actions {\n position: sticky;\n right: 0;\n bottom: 0;\n left: 0;\n display: inline-flex;\n flex-direction: column;\n gap: 12px;\n align-items: center;\n padding: var(--container-gap) 0;\n }\n\n .is-open#gh-navigation :is(.gh-button, a[data-portal=\"signin\"]) {\n opacity: 1;\n transition: transform 0.4s, opacity 0.4s;\n transition-delay: 0.2s;\n transform: translateY(0);\n }\n\n .is-open#gh-navigation a[data-portal=\"signin\"] {\n transition-delay: 0.4s;\n }\n\n .is-open#gh-main {\n opacity: 0;\n }\n}\n\n/* 7. Card\n/* ---------------------------------------------------------- */\n\n.gh-card {\n position: relative;\n}\n\n.gh-card-link {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.gh-card-link:hover {\n opacity: 1;\n}\n\n.gh-card-image {\n position: relative;\n flex-shrink: 0;\n aspect-ratio: 16 / 9;\n}\n\n.gh-card-image img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.gh-card-wrapper {\n flex-grow: 1;\n}\n\n.gh-card-tag {\n display: none;\n margin-bottom: 4px;\n font-size: 1.2rem;\n font-weight: 500;\n letter-spacing: 0.01em;\n text-transform: uppercase;\n}\n\n.gh-card-title {\n font-size: calc(1.9rem * var(--factor, 1));\n font-weight: 725;\n letter-spacing: -0.014em;\n line-height: 1.3;\n}\n\n.gh-card-link:hover .gh-card-title {\n opacity: 0.8;\n}\n\n.gh-card-excerpt {\n display: -webkit-box;\n overflow-y: hidden;\n margin-top: 8px;\n font-size: 1.45rem;\n line-height: 1.4;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.gh-card-meta {\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n align-items: center;\n padding-bottom: 1px;\n font-size: 1.25rem;\n font-weight: 500;\n line-height: 1.05;\n letter-spacing: -0.004em;\n color: var(--color-secondary-text);\n}\n\n.gh-card-meta svg {\n width: 16px;\n height: 16px;\n margin-right: 2px;\n margin-top: -2px;\n}\n\n.gh-card-meta:not(:empty) {\n margin-top: 12px;\n}\n\n.gh-card-author + .gh-card-date::before {\n content: \"—\";\n margin-right: 4px;\n}\n\n/* 8. Header\n/* ---------------------------------------------------------- */\n\n.gh-header {\n position: relative;\n margin-top: 40px;\n}\n\n.gh-header-inner {\n position: relative;\n overflow: hidden;\n}\n\n/* 8.1. Magazine layout */\n\n.gh-header.is-magazine .gh-header-inner {\n display: grid;\n grid-template-columns: repeat(16, 1fr);\n gap: var(--grid-gap);\n}\n\n.gh-header.is-magazine .gh-header-inner > div {\n display: flex;\n flex-direction: column;\n gap: var(--grid-gap);\n grid-row: 1;\n}\n\n.gh-header.is-magazine .gh-header-left {\n grid-column: 1 / span 4;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card {\n position: relative;\n grid-column: 5 / span 8;\n}\n\n.gh-header.is-magazine .gh-header-right {\n grid-column: 13 / -1;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-link {\n gap: 28px;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-image {\n aspect-ratio: 1.618033;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-tag {\n display: block;\n margin-bottom: 12px;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-title {\n font-size: clamp(2.8rem, 1.36vw + 2.25rem, 4rem);\n font-weight: 700;\n line-height: 1.1;\n letter-spacing: -0.022em;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-excerpt {\n margin-top: clamp(12px, 0.45vw + 10.18px, 16px);\n font-size: 1.8rem;\n letter-spacing: -0.02em;\n max-width: 90%;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-meta:not(:empty) {\n margin-top: 14px;\n}\n\n.gh-header.is-magazine :is(.gh-header-left, .gh-header-right) .gh-card:last-child .gh-card-image {\n display: none;\n}\n\n.gh-header.is-magazine .gh-header-inner > div .gh-card-excerpt {\n display: none;\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card::before,\n.gh-header.is-magazine .gh-header-inner > .gh-card::after {\n position: absolute;\n top: 0;\n left: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n}\n\n.gh-header.is-magazine .gh-header-inner > .gh-card::after {\n right: calc(var(--grid-gap) / -2);\n left: auto;\n}\n\n.gh-header.is-magazine .gh-header-inner > div .gh-card + .gh-card::before {\n position: absolute;\n top: calc(var(--grid-gap) / -2);\n left: 0;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: var(--color-border);\n}\n\n@media (max-width: 1199px) {\n .gh-header.is-magazine .gh-header-inner {\n grid-template-columns: repeat(12, 1fr);\n }\n\n .gh-header.is-magazine .gh-header-inner > .gh-card {\n grid-column: 1 / span 8;\n }\n\n .gh-header.is-magazine .gh-header-left {\n grid-column: 9 / -1;\n }\n\n .gh-header.is-magazine .gh-header-inner > div.gh-header-right {\n grid-column: 1 / -1;\n grid-row: 2;\n flex-direction: row;\n }\n\n .gh-header.is-magazine .gh-header-right .gh-card {\n flex: 1;\n }\n\n .gh-header.is-magazine .gh-header-right .gh-card:last-child .gh-card-image {\n display: block;\n }\n\n .gh-header.is-magazine .gh-header-right {\n position: relative;\n }\n\n .gh-header.is-magazine .gh-header-right::before {\n position: absolute;\n top: calc(var(--grid-gap) / -2);\n left: 0;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: var(--color-border);\n }\n\n .gh-header.is-magazine .gh-header-right .gh-card::before {\n display: none;\n }\n\n .gh-header.is-magazine .gh-header-right .gh-card::after {\n position: absolute;\n top: 0;\n right: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n }\n}\n\n@media (max-width: 991px) {\n .gh-header.is-magazine .gh-header-left .gh-card:nth-child(2) .gh-card-image {\n display: none;\n }\n}\n\n@media (max-width: 767px) {\n .gh-header.is-magazine .gh-header-inner {\n display: flex;\n flex-direction: column;\n gap: var(--grid-gap);\n }\n\n .gh-header.is-magazine .gh-header-inner > div.gh-header-right {\n flex-direction: column;\n }\n\n .gh-header.is-magazine .gh-card-image {\n display: block !important;\n }\n\n .gh-header.is-magazine .gh-card::before {\n display: block !important;\n position: absolute;\n top: calc(var(--grid-gap) / -2);\n left: 0;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: var(--color-border);\n }\n}\n\n/* 8.2. Highlight layout */\n\n.gh-header.is-highlight .gh-header-inner {\n display: grid;\n grid-template-columns: repeat(16, 1fr);\n gap: var(--grid-gap);\n}\n\n.gh-header.is-highlight .gh-header-left {\n position: relative;\n grid-column: span 8;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card {\n grid-column: span 8;\n grid-row: span 3;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card .gh-card-link {\n gap: 28px;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card .gh-card-image {\n aspect-ratio: 3 / 2;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card .gh-card-tag {\n display: block;\n margin-bottom: 12px;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card .gh-card-title {\n font-size: clamp(2.8rem, 1.36vw + 2.25rem, 4rem);\n font-weight: 700;\n line-height: 1.1;\n letter-spacing: -0.022em;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card .gh-card-excerpt {\n margin-top: clamp(12px, 0.45vw + 10.18px, 16px);\n font-size: 1.8rem;\n}\n\n.gh-header.is-highlight .gh-header-left .gh-card .gh-card-meta:not(:empty) {\n margin-top: 14px;\n}\n\n.gh-header.is-highlight .gh-header-middle {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--grid-gap);\n grid-column: 9 / span 4;\n}\n\n.gh-header.is-highlight .gh-header-middle .gh-card:last-child .gh-card-image {\n display: none;\n}\n\n.gh-header.is-highlight .gh-header-middle .gh-card .gh-card-excerpt {\n display: none;\n}\n\n.gh-header.is-highlight .gh-header-right {\n grid-column: 13 / -1;\n}\n\n.gh-header.is-highlight .gh-featured {\n margin-top: 0;\n padding: 0;\n}\n\n.gh-header.is-highlight .gh-featured-feed {\n display: flex;\n flex-direction: column;\n}\n\n.gh-header.is-highlight .gh-featured-feed .gh-card-title {\n font-size: clamp(1.4rem, 0.23vw + 1.31rem, 1.6rem);\n}\n\n.gh-header.is-highlight .gh-header-left::after,\n.gh-header.is-highlight .gh-header-middle::after {\n position: absolute;\n top: 0;\n right: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n}\n\n.gh-header.is-highlight .gh-card::before {\n position: absolute;\n top: calc(var(--grid-gap) / -2);\n left: 0;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: var(--color-border);\n}\n\n.gh-header.is-highlight .gh-featured .gh-card:first-child::before {\n display: none;\n}\n\n@media (max-width: 1199px) {\n .gh-header.is-highlight .gh-header-inner {\n grid-template-columns: repeat(9, 1fr);\n }\n\n .gh-header.is-highlight .gh-header-left {\n grid-column: span 6;\n }\n\n .gh-header.is-highlight .gh-header-middle {\n grid-column: 7 / -1;\n }\n\n .gh-header.is-highlight .gh-header-right {\n grid-column: 1 / -1;\n }\n\n .gh-header.is-highlight .gh-featured-feed {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n }\n\n .gh-header.is-highlight .gh-featured-feed .gh-card:before {\n width: calc(100% + var(--grid-gap));\n }\n\n .gh-header.is-highlight .gh-featured-feed .gh-card::after {\n position: absolute;\n top: 0;\n left: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n }\n}\n\n@media (max-width: 991px) {\n .gh-header.is-highlight .gh-header-middle .gh-card:nth-child(2) .gh-card-image {\n display: none;\n }\n}\n\n@media (max-width: 767px) {\n .gh-header.is-highlight .gh-header-inner {\n display: flex;\n flex-direction: column;\n }\n\n .gh-header.is-highlight .gh-featured-feed {\n display: flex;\n /* gap: var(--grid-gap); */\n }\n\n .gh-header.is-highlight .gh-card-image {\n display: block !important;\n }\n\n .gh-header.is-highlight .gh-header-middle .gh-card .gh-card-excerpt {\n display: -webkit-box;\n }\n}\n\n/* 8.3. Classic layout */\n\n.gh-header.is-classic {\n display: flex;\n margin-top: 0;\n padding-block: 160px;\n}\n\n.gh-header.is-classic .gh-header-inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 48px;\n overflow: unset;\n margin: auto;\n max-width: 1020px;\n text-align: center;\n}\n\n.gh-header.is-classic .gh-header-title {\n font-size: calc(clamp(3rem, 1.82vw + 2.27rem, 4.6rem) * var(--factor, 1));\n line-height: 1.1;\n letter-spacing: -0.028em;\n}\n\n.gh-header.is-classic.has-image {\n margin-top: 0;\n}\n\n.gh-header.is-classic.has-image::before {\n position: absolute;\n inset: 0;\n content: \"\";\n opacity: 0.3;\n background-color: var(--color-black);\n transition: opacity 1.5s ease;\n}\n\n.gh-header.is-classic.has-image .gh-header-inner {\n color: #fff;\n}\n\n.gh-header.is-classic.has-image .gh-header-image {\n position: absolute;\n inset: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.gh-header.is-classic.has-image .gh-form {\n background-color: #fff;\n}\n\n/* 9. CTA\n/* ---------------------------------------------------------- */\n\n.gh-cta {\n display: none;\n margin-top: max(4vw, 40px);\n}\n\n.gh-header:is(.is-highlight, .is-magazine) + .gh-cta {\n display: block;\n}\n\n.gh-cta-inner {\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 36px;\n padding: clamp(48px, 3.64vw + 33.45px, 80px) clamp(40px, 2.73vw + 29.09px, 64px);\n text-align: center;\n background-color: var(--color-lighter-gray);\n}\n\n.gh-cta-content {\n max-width: 640px;\n}\n\n.gh-cta-title {\n font-size: clamp(2.8rem,1.36vw + 2.25rem,4rem);\n font-weight: 700;\n line-height: 1.1;\n letter-spacing: -0.021em;\n}\n\n.gh-cta-description {\n margin-top: 12px;\n font-size: 1.8rem;\n line-height: 1.4;\n letter-spacing: -0.015em;\n}\n\n/* 10. Featured posts\n/* ---------------------------------------------------------- */\n\n.gh-featured {\n margin-top: 100px;\n}\n\n.gh-navigation + .gh-featured {\n margin-top: 64px;\n}\n\n.gh-header.is-classic:not(.has-image) + .gh-featured {\n margin-top: 0;\n}\n\n.gh-featured-inner {\n overflow: hidden;\n}\n\n.gh-featured-title {\n margin-bottom: 20px;\n padding-bottom: 12px;\n font-size: 1.2rem;\n font-weight: 550;\n letter-spacing: 0.025em;\n text-transform: uppercase;\n border-bottom: 1px solid var(--color-border);\n}\n\n.gh-featured-feed {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--grid-gap);\n}\n\n.gh-featured-feed .gh-card {\n container-type: inline-size;\n container-name: featured-card;\n}\n\n.gh-featured-feed .gh-card-link {\n display: flex;\n flex-direction: row-reverse;\n align-items: flex-start;\n}\n\n.gh-featured-feed .gh-card-image {\n width: 72px;\n aspect-ratio: 1;\n}\n\n@container featured-card (width < 240px) {\n .gh-featured-feed .gh-card-image {\n display: none;\n }\n}\n\n@container featured-card (240px <= width <= 270px) {\n .gh-featured-feed .gh-card-image {\n width: 64px;\n }\n}\n\n.gh-featured-feed .gh-card-wrapper {\n container-type: inline-size;\n container-name: featured-card-wrapper;\n}\n\n.gh-featured-feed .gh-card-title {\n font-size: 1.6rem;\n font-weight: 650;\n letter-spacing: -0.011em;\n}\n\n@container featured-card-wrapper (width < 170px) {\n .gh-featured-feed .gh-card-title {\n font-size: 1.6rem;\n }\n}\n\n.gh-featured-feed .gh-card-excerpt {\n display: none;\n}\n\n.gh-featured-feed .gh-card-meta:not(:empty) {\n margin-top: 10px;\n}\n\n.gh-featured-feed .gh-card::before {\n position: absolute;\n top: 0;\n left: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n}\n\n@media (max-width: 1199px) {\n .gh-viewport > .gh-featured .gh-featured-feed {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .gh-viewport > .gh-featured .gh-featured-feed .gh-card:nth-child(4) {\n display: none;\n }\n}\n\n@media (max-width: 767px) {\n .gh-viewport > .gh-featured .gh-featured-feed {\n display: flex;\n flex-direction: column;\n }\n}\n\n/* 11. Container\n/* ---------------------------------------------------------- */\n\n.gh-container {\n flex-grow: 1;\n margin-top: 64px;\n}\n\n.gh-container-inner {\n display: grid;\n grid-template-columns: repeat(16, 1fr);\n column-gap: var(--grid-gap);\n}\n\n:is(.gh-featured, .gh-cta) + .gh-container {\n margin-top: max(4vw, 40px);\n}\n\n.gh-header.is-classic:not(.has-image) + .gh-container {\n margin-top: 0;\n}\n\n.gh-navigation + .gh-container .gh-container-title,\n:is(.paged, .tag-template, .author-template) .gh-container:not(.has-sidebar) .gh-container-title {\n display: none;\n}\n\n.gh-more {\n display: none;\n grid-column: 1 / -1;\n margin-top: 48px;\n font-size: calc(1.9rem * var(--factor, 1));\n font-weight: 725;\n letter-spacing: -0.014em;\n}\n\n.gh-container.has-sidebar .gh-more {\n grid-column: span 12;\n}\n\n.home-template .gh-feed:has(> :nth-child(12):last-child) ~ .gh-more {\n display: block;\n}\n\n.gh-more a {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.gh-more svg {\n margin-top: -1px;\n width: 18px;\n height: 18px;\n}\n\n.has-serif-title .gh-more svg {\n margin-top: 0;\n}\n\n/* 11.1. With sidebar */\n\n.gh-container.has-sidebar .gh-main {\n grid-column: 1 / span 12;\n position: relative;\n}\n\n.gh-container.has-sidebar .gh-sidebar {\n grid-column: 13 / -1;\n}\n\n.gh-container.has-sidebar .gh-main::after {\n position: absolute;\n top: 0;\n right: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n}\n\n/* 11.2. Without sidebar */\n\n.gh-container:not(.has-sidebar) :is(.gh-container-title, .gh-main, .gh-more) {\n grid-column: 3 / span 12;\n}\n\n.gh-container.is-list.no-image:not(.has-sidebar) :is(.gh-container-title, .gh-main, .gh-more) {\n grid-column: 4 / span 10;\n}\n\n.gh-header:is(.is-highlight, .is-magazine) ~ .gh-container.is-grid:not(.has-sidebar) :is(.gh-container-title, .gh-main, .gh-more) {\n grid-column: 1 / -1;\n}\n\n@media (max-width: 1199px) {\n .gh-container-inner {\n display: block;\n overflow: hidden;\n }\n\n .gh-container.has-sidebar .gh-sidebar {\n display: none;\n }\n}\n\n/* 12. Post list\n/* ---------------------------------------------------------- */\n\n.gh-container-title {\n grid-column: 1 / -1;\n margin-bottom: calc(var(--grid-gap) / 2);\n padding-bottom: 12px;\n font-size: 1.2rem;\n font-weight: 550;\n letter-spacing: 0.025em;\n text-transform: uppercase;\n border-bottom: 1px solid var(--color-border);\n}\n\n.gh-container:not(:has(.gh-card)) .gh-container-title {\n display: none;\n}\n\n.gh-container .gh-feed {\n gap: var(--grid-gap);\n}\n\n.gh-container .gh-card-meta:not(:empty) {\n margin-top: 16px;\n}\n\n/* 12.1. List style */\n\n.gh-container.is-list .gh-feed {\n display: flex;\n flex-direction: column;\n container-type: inline-size;\n container-name: list-feed;\n}\n\n.gh-container.is-list .gh-card-link {\n flex-direction: row;\n align-items: center;\n gap: 24px;\n}\n\n.gh-container.is-list .no-image .gh-card-link {\n padding-block: 20px;\n}\n\n.gh-container.is-list .gh-card-image {\n flex-shrink: 0;\n width: 220px;\n aspect-ratio: 1.618033;\n}\n\n@container list-feed (width < 600px) {\n .gh-container.is-list .gh-card-image {\n width: 160px;\n }\n}\n\n.gh-container.is-list .gh-card:not(.no-image) .gh-card-wrapper {\n max-width: 600px;\n}\n\n.gh-container.is-list .gh-card-title {\n --factor: 1.05;\n}\n\n.gh-container.is-list .no-image .gh-card-title {\n --factor: 1.2;\n}\n\n.gh-container.is-list .gh-card-excerpt {\n margin-top: 6px;\n}\n\n.gh-container.is-list .gh-card + .gh-card::before {\n position: absolute;\n top: calc(var(--grid-gap) / -2);\n left: 0;\n content: \"\";\n width: 100%;\n height: 1px;\n background-color: var(--color-border);\n}\n\n.home-template .gh-container.is-list .gh-card:first-child:before {\n display: none;\n}\n\n@media (max-width: 767px) {\n .gh-container.is-list .gh-card-link {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .gh-container.is-list .gh-card-image {\n width: 100%;\n }\n}\n\n/* 12.2. Grid style */\n\n.gh-container.is-grid .gh-feed {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));\n row-gap: calc(var(--grid-gap) * 1.5);\n overflow: hidden;\n}\n\n.gh-container.is-grid .gh-card::before {\n position: absolute;\n top: calc(var(--grid-gap) / -2);\n right: calc(var(--grid-gap) / -2);\n left: calc(var(--grid-gap) / -2);\n content: \"\";\n height: 1px;\n background-color: var(--color-border);\n}\n\n.gh-container.is-grid .gh-card::after {\n position: absolute;\n top: 0;\n left: calc(var(--grid-gap) / -2);\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: var(--color-border);\n}\n\n@media (max-width: 767px) {\n .gh-container.is-grid .gh-feed {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (max-width: 576px) {\n .gh-container.is-grid .gh-feed {\n display: flex;\n flex-direction: column;\n }\n}\n\n/* 12.3. No image list */\n\n.gh-container.is-list.no-image .gh-card-image {\n display: none;\n}\n\n/* 13. Sidebar\n/* ---------------------------------------------------------- */\n\n.gh-sidebar-inner {\n position: sticky;\n top: calc(var(--grid-gap) / 2);\n}\n\n.gh-sidebar-title {\n grid-column: 1 / -1;\n margin-bottom: calc(var(--grid-gap) / 2);\n padding-bottom: 12px;\n font-size: 1.2rem;\n font-weight: 550;\n letter-spacing: 0.025em;\n text-transform: uppercase;\n border-bottom: 1px solid var(--color-border);\n}\n\n.gh-about {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 48px 24px;\n min-height: 380px;\n text-align: center;\n background-color: var(--color-lighter-gray);\n}\n\n.gh-about-icon {\n margin-bottom: 24px;\n width: 60px;\n height: 60px;\n border-radius: 50%;\n}\n\n.gh-about-title {\n font-size: calc(2.4rem * var(--factor, 1));\n font-weight: 700;\n letter-spacing: -0.019em;\n}\n\n.gh-about-description {\n margin-top: 12px;\n font-size: 1.45rem;\n line-height: 1.4;\n}\n\n.gh-about .gh-button {\n margin-top: 32px;\n}\n\n.gh-recommendations {\n margin-top: 48px;\n}\n\n.gh-recommendations .recommendations {\n display: flex;\n flex-direction: column;\n gap: 26px;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.gh-recommendations .recommendation:first-child {\n margin-top: 4px;\n}\n\n.gh-recommendations .recommendation a {\n display: grid;\n grid-template-columns: 24px auto;\n gap: 4px 12px;\n}\n\n.gh-recommendations .recommendation a:hover {\n opacity: 1;\n}\n\n.gh-recommendations .recommendation-favicon {\n grid-row: span 2;\n width: 100%;\n border-radius: 4px;\n}\n\n.gh-recommendations .recommendation-title {\n margin-top: -2px;\n font-size: 1.5rem;\n font-weight: 650;\n letter-spacing: -0.009em;\n}\n\n.gh-recommendations .recommendation a:hover .recommendation-title {\n opacity: 0.8;\n}\n\n.gh-recommendations .recommendation-url {\n order: 1;\n overflow: hidden;\n font-size: 1.4rem;\n line-height: 1.25;\n color: var(--color-secondary-text);\n text-overflow: ellipsis;\n}\n\n.gh-recommendations .recommendation-description {\n display: -webkit-box;\n display: none;\n overflow-y: hidden;\n grid-column: 2;\n font-size: 1.4rem;\n line-height: 1.4;\n color: var(--color-secondary-text);\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.gh-recommendations button {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n margin-top: 24px;\n padding: 0;\n cursor: pointer;\n font-size: 1.2rem;\n font-weight: 550;\n letter-spacing: 0.025em;\n text-transform: uppercase;\n background-color: transparent;\n border: 0;\n}\n\n.gh-recommendations button svg {\n margin-top: -1px;\n width: 12px;\n}\n\n.gh-recommendations button:hover {\n opacity: 0.8;\n}\n\n/* 14. Post/page\n/* ---------------------------------------------------------- */\n\n/* 14.1. Article */\n\n.gh-article {\n --container-width: 1120px;\n\n word-break: break-word;\n}\n\n.gh-article-header {\n margin: clamp(40px, 3.64vw + 25.45px, 72px) 0 40px;\n}\n\n.gh-article-tag {\n margin-bottom: 12px;\n font-size: 1.3rem;\n font-weight: 500;\n letter-spacing: 0.01em;\n text-transform: uppercase;\n color: var(--ghost-accent-color);\n}\n\n.gh-article-title {\n font-size: calc(clamp(3.4rem, 1.36vw + 2.85rem, 4.6rem) * var(--factor, 1));\n line-height: 1.1;\n letter-spacing: -0.022em;\n}\n\n.gh-article-excerpt {\n margin-top: clamp(12px, 0.45vw + 10.18px, 16px);\n max-width: 720px;\n font-size: clamp(1.5rem, 0.45vw + 1.32rem, 1.9rem);\n line-height: 1.4;\n letter-spacing: -0.018em;\n}\n\n.gh-article-meta {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-top: 20px;\n margin-left: 6px;\n}\n\n.gh-article-author-image {\n display: flex;\n margin-right: 8px;\n}\n\n.gh-article-author-image a {\n position: relative;\n margin: 0 -8px;\n width: 56px;\n height: 56px;\n overflow: hidden;\n background-color: var(--color-light-gray);\n border-radius: 50%;\n border: 3px solid var(--background-color);\n}\n\n.gh-article-author-image a:first-child {\n z-index: 10;\n}\n\n.gh-article-author-image a:nth-child(2) {\n z-index: 9;\n}\n\n.gh-article-author-image a:nth-child(3) {\n z-index: 8;\n}\n\n.gh-article-author-image :is(img, svg) {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.gh-article-meta-wrapper {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.gh-article-author-name {\n font-size: 1.6rem;\n font-weight: 650;\n letter-spacing: -0.013em;\n}\n\n.gh-article-meta-content {\n font-size: 1.35rem;\n font-weight: 500;\n line-height: 1.2;\n letter-spacing: -0.006em;\n color: var(--color-secondary-text);\n}\n\n.gh-article-image {\n grid-column: wide;\n margin-top: 40px;\n}\n\n.gh-article-image img {\n width: 100%;\n}\n\n/* 14.2. Page template */\n\n.page-template .gh-article-header {\n margin-block: 72px 32px;\n}\n\n/* 14.3. Page without header */\n\n.page-template .gh-content:only-child > *:first-child:not(.kg-width-full) {\n margin-top: 64px;\n}\n\n.page-template .gh-content > *:last-child:not(.kg-width-full) {\n margin-bottom: 6vw;\n}\n\n.page-template .gh-footer {\n margin-top: 0;\n}\n\n/* 15. Content\n/* ---------------------------------------------------------- */\n\n/* Content refers to styling all page and post content that is\ncreated within the Ghost editor. The main content handles\nheadings, text, images and lists. We deal with cards lower down. */\n\n.gh-content {\n font-size: var(--content-font-size, 1.7rem);\n letter-spacing: -0.01em;\n}\n\n/* Default vertical spacing */\n.gh-content > * + * {\n margin-top: calc(28px * var(--content-spacing-factor, 1));\n margin-bottom: 0;\n}\n\n/* Remove space between full-width cards */\n.gh-content > .kg-width-full + .kg-width-full:not(.kg-width-full.kg-card-hascaption + .kg-width-full) {\n margin-top: 0;\n}\n\n/* Add back a top margin to all headings,\nunless a heading is the very first element in the post content */\n.gh-content > [id]:not(:first-child) {\n margin-top: calc(56px * var(--content-spacing-factor, 1));\n}\n\n/* Add drop cap setting */\n.post-template .gh-content.drop-cap > p:first-of-type:first-letter {\n margin :0 0.2em 0em 0;\n font-size: 3.1em;\n float:left;\n line-height: 1;\n margin-left: -1px;\n font-weight: 700;\n}\n\n.has-serif-body.post-template .gh-content.drop-cap > p:first-of-type:first-letter {\n font-size: 3.2em;\n}\n\n/* Add a small margin between a heading and paragraph after it */\n.gh-content > [id] + p {\n margin-top: calc(12px * var(--content-spacing-factor, 1));\n}\n\n/* A larger margin before/after dividers, blockquotes and embeds */\n.gh-content > :is(hr, blockquote, iframe) {\n position: relative;\n margin-top: calc(48px * var(--content-spacing-factor, 1)) !important;\n}\n\n.gh-content > :is(hr, blockquote, iframe) + * {\n margin-top: calc(48px * var(--content-spacing-factor, 1)) !important;\n}\n\n/* Now the content typography styles */\n.gh-content h1 {\n font-size: calc(2.2em * var(--factor, 1));\n letter-spacing: -0.02em;\n}\n\n.gh-content h2 {\n font-size: calc(1.6em * var(--factor, 1));\n letter-spacing: -0.02em;\n}\n\n.gh-content h3 {\n font-size: calc(1.3em * var(--factor, 1));\n letter-spacing: -0.017em;\n}\n\n.gh-content a {\n color: var(--ghost-accent-color);\n text-decoration: underline;\n}\n\n.gh-content .kg-callout-card .kg-callout-text,\n.gh-content .kg-toggle-card .kg-toggle-content > :is(ul, ol, p) {\n font-size: 0.95em;\n}\n\n.has-serif-body .gh-content > blockquote,\n.has-serif-body .gh-content > ol,\n.has-serif-body .gh-content > ul,\n.has-serif-body .gh-content > dl,\n.has-serif-body .gh-content > p,\n.has-serif-body .gh-content .kg-callout-text,\n.has-serif-body .gh-content .kg-toggle-content > ol,\n.has-serif-body .gh-content .kg-toggle-content > ul,\n.has-serif-body .gh-content .kg-toggle-content > p {\n font-family: var(--font-serif-alt);\n}\n\n.gh-content :is(ul, ol) {\n padding-left: 28px;\n}\n\n.gh-content :is(li + li, li :is(ul, ol)) {\n margin-top: 8px;\n}\n\n.gh-content ol ol li {\n list-style-type: lower-alpha;\n}\n\n.gh-content ol ol ol li {\n list-style-type: lower-roman;\n}\n\n.gh-content hr {\n width: 100%;\n height: 1px;\n background-color: var(--color-border);\n border: 0;\n}\n\n.gh-content .gh-table {\n overflow-x: scroll;\n -webkit-overflow-scrolling: touch;\n}\n\n.gh-content .gh-table table {\n width: 100%;\n font-family: var(--font-sans);\n font-size: 1.5rem;\n white-space: nowrap;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n}\n\n.gh-content .gh-table table th {\n font-size: 1.2rem;\n font-weight: 700;\n color: var(--color-darkgrey);\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.2px;\n}\n\n.gh-content .gh-table table :is(th, td),\n.gh-content .gh-table table td {\n padding: 6px 12px;\n border-bottom: 1px solid var(--color-border);\n}\n\n.gh-content .gh-table table :is(th, td):first-child {\n padding-left: 0;\n}\n\n.gh-content .gh-table table :is(th, td):last-child {\n padding-right: 0;\n}\n\n.gh-content pre {\n overflow: auto;\n padding: 16px;\n font-size: 1.5rem;\n line-height: 1.5em;\n background: var(--color-lighter-gray);\n border-radius: 6px;\n font-family: var(--font-mono);\n}\n\n.gh-content :not(pre) > code {\n vertical-align: baseline;\n padding: 0.15em 0.4em;\n font-weight: 400;\n font-size: 0.95em;\n line-height: 1em;\n background: var(--color-lighter-gray);\n border-radius: 0.25em;\n font-family: var(--font-mono);\n}\n\n/* 16. Cards\n/* ---------------------------------------------------------- */\n\n/* Add extra margin before/after any cards, except for when immediately preceeded by a heading */\n\n.gh-content :not(.kg-card):not(table):not([id]) + :is(.kg-card, table) {\n margin-top: calc(48px * var(--content-spacing-factor, 1));\n}\n\n.gh-content :is(.kg-card, table) + :not(.kg-card):not(table):not([id]) {\n margin-top: calc(48px * var(--content-spacing-factor, 1));\n}\n\n.gh-content :not(.kg-card):not([id]) + .kg-card.kg-width-full {\n margin-top: calc(68px * var(--content-spacing-factor, 1));\n}\n\n.gh-content .kg-card.kg-width-full + :not(.kg-card):not([id]) {\n margin-top: calc(68px * var(--content-spacing-factor, 1));\n}\n\n/* Image */\n\n.kg-image {\n margin-right: auto;\n margin-left: auto;\n}\n\n/* Embed */\n\n.kg-embed-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n/* Gallery */\n\n.kg-image[width][height],\n.kg-gallery-image {\n cursor: pointer;\n}\n\n.kg-image-card a:hover,\n.kg-gallery-image a:hover {\n opacity: 1 !important;\n}\n\n/* Toggle */\n\n.kg-card.kg-toggle-card .kg-toggle-heading-text {\n font-size: 2rem;\n font-weight: 700;\n}\n\n.has-serif-title .kg-toggle-card .kg-toggle-heading-text {\n font-family: var(--font-serif);\n}\n\n.has-mono-title .kg-toggle-card .kg-toggle-heading-text {\n font-family: var(--font-mono);\n}\n\n/* Callout */\n\n.kg-callout-card.kg-card {\n border-radius: 0.25em;\n}\n\n.kg-callout-card-accent a {\n text-decoration: underline;\n}\n\n/* Blockquote */\n\nblockquote:not([class]) {\n padding-left: 2rem;\n border-left: 4px solid var(--ghost-accent-color);\n}\n\nblockquote.kg-blockquote-alt {\n font-style: normal;\n font-weight: 400;\n color: var(--color-secondary-text);\n}\n\n/* Button */\n\n.kg-card.kg-button-card .kg-btn {\n height: unset;\n padding: .6em 1.2em;\n text-align: center;\n font-size: 1em;\n line-height: 1.2em;\n}\n\n/* Header */\n\n.has-serif-title .kg-card.kg-header-card h2.kg-header-card-header {\n font-family: var(--font-serif);\n}\n\n.has-mono-title .kg-card.kg-header-card h2.kg-header-card-header {\n font-family: var(--font-mono);\n}\n\n.has-serif-body .kg-header-card h3.kg-header-card-subheader {\n font-family: var(--font-serif);\n}\n\n/* Bookmark */\n\n.kg-bookmark-card .kg-bookmark-container {\n border-radius: 0.25em !important;\n}\n\n.kg-bookmark-card .kg-bookmark-container:hover {\n opacity: 1;\n}\n\n.kg-bookmark-card a.kg-bookmark-container,\n.kg-bookmark-card a.kg-bookmark-container:hover {\n background: var(--background-color) !important;\n color: var(--color-darker-gray) !important;\n}\n\n.kg-bookmark-card .kg-bookmark-content {\n padding: 1.15em;\n}\n\n.kg-bookmark-card .kg-bookmark-title {\n font-size: 0.9em;\n}\n\n.kg-bookmark-card .kg-bookmark-description {\n max-height: none;\n margin-top: 0.3em;\n font-size: 0.8em;\n}\n\n.kg-bookmark-card .kg-bookmark-metadata {\n font-size: 0.8em;\n}\n\n.kg-bookmark-card .kg-bookmark-thumbnail img {\n border-radius: 0 0.2em 0.2em 0;\n}\n\n/* Product */\n\n.kg-product-card.kg-card .kg-product-card-image {\n margin-bottom: 12px;\n}\n\n.kg-product-card.kg-card a.kg-product-card-button {\n height: 2.8em;\n margin-top: 12px;\n}\n\n.has-serif-title .kg-product-card.kg-card .kg-product-card-title {\n font-family: var(--font-serif);\n}\n\n.has-mono-title .kg-product-card.kg-card .kg-product-card-title {\n font-family: var(--font-mono);\n}\n\n.has-serif-body .kg-product-card-description :is(p, ul, ol) {\n font-family: var(--font-serif-alt);\n}\n\n/* File */\n\n.kg-file-card.kg-card .kg-file-card-container {\n padding: 0.6em;\n}\n\n.kg-file-card.kg-card .kg-file-card-contents {\n margin: 4px 8px 6px;\n}\n\n.kg-file-card.kg-card .kg-file-card-metadata {\n font-size: 0.9em;\n}\n\n.kg-file-card.kg-card .kg-file-card-filesize::before {\n margin-right: 6px;\n margin-left: 6px;\n}\n\n/* Caption */\n\nfigcaption {\n margin-top: 12px;\n font-size: 1.4rem;\n text-align: center;\n}\n\n.kg-card.kg-width-full figcaption {\n padding: 0 16px;\n}\n\nfigcaption a {\n color: var(--ghost-accent-color);\n text-decoration: underline;\n}\n\n/* 17. Comments\n/* ---------------------------------------------------------- */\n\n.gh-comments {\n margin-top: 48px;\n}\n\n/* 18. Recent posts\n/* ---------------------------------------------------------- */\n\n.post-template .gh-container {\n margin-top: 120px;\n}\n\n.post-template .gh-container-inner {\n display: block;\n}\n\n.post-template .gh-container.is-grid .gh-feed {\n grid-template-columns: repeat(4, 1fr);\n}\n\n.post-template .gh-container .gh-container-title {\n display: block;\n}\n\n/* 19. Archive\n/* ---------------------------------------------------------- */\n\n.gh-archive {\n display: grid;\n grid-template-columns: repeat(16, 1fr);\n gap: var(--grid-gap);\n margin-block: 80px 24px;\n}\n\n.gh-archive.has-image {\n margin-top: 48px;\n}\n\n.gh-archive-inner {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: var(--grid-gap);\n grid-column: 1 / -1;\n padding-bottom: clamp(40px, 2.73vw + 29.09px, 64px);\n border-bottom: 1px solid var(--color-border);\n}\n\n.gh-archive.has-image .gh-archive-inner {\n align-items: center;\n grid-column: 1 / -1;\n}\n\n.gh-archive:not(.has-sidebar):not(.has-image) .gh-archive-inner {\n grid-column: 3 / span 12;\n}\n\n.gh-archive .gh-article-image {\n grid-column: auto;\n margin-top: 0;\n}\n\n:is(.tag-template, .author-template) .gh-container {\n margin-top: 0;\n}\n\n.author-template .gh-archive-inner {\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n gap: 24px;\n}\n\n.author-template .gh-article-image {\n margin-top: 0;\n width: 120px;\n height: 120px;\n border-radius: 50%;\n object-fit: cover;\n}\n\n.author-template .gh-article-title {\n font-size: 3.6rem;\n}\n\n.gh-author-meta {\n display: flex;\n gap: 10px;\n margin-top: 14px;\n font-size: 1.5rem;\n font-weight: 550;\n color: var(--color-secondary-text);\n}\n\n.gh-author-meta a {\n color: inherit;\n}\n\n.gh-author-social {\n display: flex;\n gap: 10px;\n align-items: center;\n padding-left: 3px;\n}\n\n.gh-author-social svg {\n width: 20px;\n height: 20px;\n}\n\n@media (max-width: 1199px) {\n .gh-archive {\n display: block;\n }\n}\n\n@media (max-width: 767px) {\n .gh-archive-inner {\n display: flex;\n flex-direction: column-reverse;\n align-items: flex-start;\n }\n\n .author-template .gh-archive-inner {\n flex-direction: column-reverse;\n }\n}\n\n/* 20. Design settings\n/* ---------------------------------------------------------- */\n\n.has-serif-title {\n --factor: 1.15;\n}\n\n.has-mono-title {\n --factor: 1.1;\n}\n\n.has-sans-title :is(.is-title, .gh-content :is(h2, h3)) {\n font-family: var(--font-sans);\n}\n\n.has-serif-title :is(.is-title, .gh-content :is(h2, h3)) {\n font-family: var(--font-serif);\n font-weight: 550;\n}\n\n.has-mono-title :is(.is-title, .gh-content :is(h2, h3)) {\n font-family: var(--font-mono);\n}\n\n.has-sans-body .is-body {\n font-family: var(--font-sans);\n}\n\n.has-serif-body .is-body {\n font-family: var(--font-serif-alt);\n}\n\n.has-serif-title .gh-header.is-classic .gh-header-title {\n font-weight: 550;\n letter-spacing: -0.015em;\n}\n\n.has-mono-title .gh-header.is-classic .gh-header-title {\n letter-spacing: -0.01em;\n}\n\n.has-serif-title .gh-form {\n border-radius: 0;\n}\n\n.has-serif-title .gh-card-title {\n line-height: 1.15;\n letter-spacing: -0.006em;\n font-size: calc(2.0rem*var(--factor, 1))\n}\n\n.has-serif-title .gh-featured-feed .gh-card-title {\n font-size: calc(1.6rem*var(--factor, 1))\n}\n\n.has-mono-title .gh-featured-feed .gh-card-title {\n font-size: calc(1.5rem*var(--factor, 1));\n letter-spacing: 0;\n}\n\n.has-serif-title .gh-header.is-highlight .gh-featured-feed .gh-card-title {\n font-size: clamp(1.6rem, 0.23vw + 1.51rem, 1.8rem);\n}\n\n.has-mono-title .gh-card-title {\n font-size: calc(1.8rem*var(--factor, 1));\n line-height: 1.2;\n}\n\n.has-serif-title .gh-about-title {\n letter-spacing: -0.009em;\n}\n\n.has-serif-title .gh-footer-signup-header {\n letter-spacing: -0.019em;\n}\n\n.has-serif-title .gh-article-title {\n letter-spacing: -0.019em;\n}\n\n.has-serif-body {\n --content-font-size: 1.9rem;\n}\n\n.has-serif-body .gh-card-excerpt {\n font-size: 1.65rem;\n line-height: 1.4;\n letter-spacing: 0.0005em;\n}\n\n.has-serif-body .gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-excerpt,\n.has-serif-body .gh-header.is-highlight .gh-card:first-child .gh-card-excerpt {\n font-size: 1.8rem;\n letter-spacing: -0.001em;\n}\n\n.has-serif-title .gh-header.is-magazine .gh-header-inner>.gh-card .gh-card-title,\n.has-serif-title .gh-header.is-highlight .gh-header-left .gh-card-title {\n font-weight: 550;\n font-size: clamp(3.2rem,1.82vw + 2.47rem,4.9rem)\n}\n\n.has-serif-body .gh-about-description {\n font-size: 1.6rem;\n}\n\n.has-serif-body .gh-article-excerpt {\n letter-spacing: 0;\n}\n\n.has-serif-body .gh-footer-signup-subhead {\n letter-spacing: 0;\n}\n\n.has-serif-title :is(.gh-button, .gh-form, .gh-form-input) {\n border-radius: 0;\n}\n\n.has-mono-title :is(.gh-button) {\n border-radius: 0;\n}\n\n.has-mono-title :is(.gh-form) {\n border-radius: 0;\n}\n\n.has-serif-title .gh-cta-title {\n font-size: 4.8rem;\n}\n\n/* 21. Footer\n/* ---------------------------------------------------------- */\n\n.gh-footer {\n margin-top: 12vw;\n font-size: 1.5rem;\n color: var(--color-darker-gray);\n}\n\n.gh-footer a:not(.gh-button) {\n color: inherit;\n}\n\n/* 21.1 Footer styles */\n\n.gh-footer.has-accent-color {\n background-color: var(--ghost-accent-color);\n}\n\n.gh-footer.has-accent-color .gh-footer-bar {\n border-top: 0;\n}\n\n.gh-footer.has-accent-color .gh-button {\n background-color: #fff;\n color: #15171a;\n}\n\n/* 21.2. Footer bar */\n\n.gh-footer-bar {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n align-items: center;\n column-gap: 32px;\n margin-bottom: 100px;\n padding-block: 28px;\n font-weight: 550;\n border-block: 1px solid var(--color-border);\n}\n\n.gh-footer-logo {\n position: relative;\n font-size: calc(2.4rem * var(--factor, 1));\n font-weight: 725;\n letter-spacing: -0.015em;\n white-space: nowrap;\n}\n\n.gh-footer-logo img {\n max-height: 40px;\n}\n\n.gh-footer-menu .nav {\n display: flex;\n justify-content: center;\n gap: 8px 28px;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.gh-footer-copyright {\n text-align: right;\n white-space: nowrap;\n}\n\n.gh-footer-copyright a {\n text-decoration: underline;\n}\n\n/* 21.3. Footer signup */\n\n.gh-footer-signup {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-bottom: 160px;\n text-align: center;\n}\n\n.gh-footer-signup-header {\n font-size: calc(clamp(2.8rem,1.36vw + 2.25rem,4rem) * var(--factor, 1));\n font-weight: 700;\n letter-spacing: -0.03em;\n}\n\n.gh-footer-signup-subhead {\n margin-top: 12px;\n max-width: 640px;\n font-size: 1.8rem;\n font-weight: 450;\n line-height: 1.4;\n letter-spacing: -0.014em;\n opacity: 0.75;\n}\n\n.gh-footer-signup .gh-form {\n margin-top: 40px;\n}\n\n@media (max-width: 991px) {\n .gh-footer-bar {\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n}\n\n/* 22. Lightbox\n/* ---------------------------------------------------------- */\n\n.pswp {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 3999999;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n -ms-touch-action: none;\n touch-action: none;\n outline: none;\n backface-visibility: hidden;\n -webkit-text-size-adjust: 100%;\n}\n\n.pswp img {\n max-width: none;\n}\n\n.pswp--animate_opacity {\n opacity: 0.001;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n will-change: opacity;\n}\n\n.pswp--open {\n display: block;\n}\n\n.pswp--zoom-allowed .pswp__img {\n cursor: zoom-in;\n}\n\n.pswp--zoomed-in .pswp__img {\n cursor: grab;\n}\n\n.pswp--dragging .pswp__img {\n cursor: grabbing;\n}\n\n.pswp__bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.85);\n opacity: 0;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n transform: translateZ(0);\n backface-visibility: hidden;\n will-change: opacity;\n}\n\n.pswp__scroll-wrap {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.pswp__container,\n.pswp__zoom-wrap {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n touch-action: none;\n backface-visibility: hidden;\n}\n\n.pswp__container,\n.pswp__img {\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n\n.pswp__zoom-wrap {\n position: absolute;\n width: 100%;\n transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);\n transform-origin: left top;\n}\n\n.pswp--animated-in .pswp__bg,\n.pswp--animated-in .pswp__zoom-wrap {\n transition: none;\n}\n\n.pswp__item {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n}\n\n.pswp__img {\n position: absolute;\n top: 0;\n left: 0;\n width: auto;\n height: auto;\n}\n\n.pswp__img--placeholder {\n backface-visibility: hidden;\n}\n\n.pswp__img--placeholder--blank {\n background: var(--color-black);\n}\n\n.pswp--ie .pswp__img {\n top: 0;\n left: 0;\n width: 100% !important;\n height: auto !important;\n}\n\n.pswp__error-msg {\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n margin-top: -8px;\n font-size: 14px;\n line-height: 16px;\n color: var(--color-secondary-text);\n text-align: center;\n}\n\n.pswp__error-msg a {\n color: var(--color-secondary-text);\n text-decoration: underline;\n}\n\n.pswp__button {\n position: relative;\n display: block;\n float: right;\n width: 44px;\n height: 44px;\n padding: 0;\n margin: 0;\n overflow: visible;\n appearance: none;\n cursor: pointer;\n background: none;\n border: 0;\n box-shadow: none;\n transition: opacity 0.2s;\n}\n\n.pswp__button:focus,\n.pswp__button:hover {\n opacity: 1;\n}\n\n.pswp__button:active {\n outline: none;\n opacity: 0.9;\n}\n\n.pswp__button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\n.pswp__ui--over-close .pswp__button--close {\n opacity: 1;\n}\n\n.pswp__button,\n.pswp__button--arrow--left::before,\n.pswp__button--arrow--right::before {\n width: 44px;\n height: 44px;\n background: url(\"../images/default-skin.png\") 0 0 no-repeat;\n background-size: 264px 88px;\n}\n\n@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {\n .pswp--svg .pswp__button,\n .pswp--svg .pswp__button--arrow--left::before,\n .pswp--svg .pswp__button--arrow--right::before {\n background-image: url(\"../images/default-skin.svg\");\n }\n\n .pswp--svg .pswp__button--arrow--left,\n .pswp--svg .pswp__button--arrow--right {\n background: none;\n }\n}\n\n.pswp__button--close {\n background-position: 0 -44px;\n}\n\n.pswp__button--share {\n background-position: -44px -44px;\n}\n\n.pswp__button--fs {\n display: none;\n}\n\n.pswp--supports-fs .pswp__button--fs {\n display: block;\n}\n\n.pswp--fs .pswp__button--fs {\n background-position: -44px 0;\n}\n\n.pswp__button--zoom {\n display: none;\n background-position: -88px 0;\n}\n\n.pswp--zoom-allowed .pswp__button--zoom {\n display: block;\n}\n\n.pswp--zoomed-in .pswp__button--zoom {\n background-position: -132px 0;\n}\n\n.pswp--touch .pswp__button--arrow--left,\n.pswp--touch .pswp__button--arrow--right {\n visibility: hidden;\n}\n\n.pswp__button--arrow--left,\n.pswp__button--arrow--right {\n position: absolute;\n top: 50%;\n width: 70px;\n height: 100px;\n margin-top: -50px;\n background: none;\n}\n\n.pswp__button--arrow--left {\n left: 0;\n}\n\n.pswp__button--arrow--right {\n right: 0;\n}\n\n.pswp__button--arrow--left::before,\n.pswp__button--arrow--right::before {\n position: absolute;\n top: 35px;\n width: 32px;\n height: 30px;\n content: \"\";\n}\n\n.pswp__button--arrow--left::before {\n left: 6px;\n background-position: -138px -44px;\n}\n\n.pswp__button--arrow--right::before {\n right: 6px;\n background-position: -94px -44px;\n}\n\n.pswp__counter {\n position: absolute;\n top: 0;\n left: 0;\n height: 44px;\n padding: 0 15px;\n font-size: 11px;\n font-weight: 700;\n line-height: 44px;\n color: var(--color-white);\n user-select: none;\n}\n\n.pswp__caption {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n min-height: 44px;\n}\n\n.pswp__caption__center {\n max-width: 420px;\n padding: 25px 15px 30px;\n margin: 0 auto;\n font-size: 11px;\n line-height: 1.6;\n color: var(--color-white);\n text-align: center;\n}\n\n.pswp__caption__center .post-caption-title {\n margin-bottom: 7px;\n font-size: 15px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.pswp__caption__center .post-caption-meta-item + .post-caption-meta-item::before {\n padding: 0 4px;\n content: \"\\02022\";\n}\n\n.pswp__caption--empty {\n display: none;\n}\n\n.pswp__caption--fake {\n visibility: hidden;\n}\n\n.pswp__preloader {\n position: absolute;\n top: 0;\n left: 50%;\n width: 44px;\n height: 44px;\n margin-left: -22px;\n opacity: 0;\n transition: opacity 0.25s ease-out;\n direction: ltr;\n will-change: opacity;\n}\n\n.pswp__preloader__icn {\n width: 20px;\n height: 20px;\n margin: 12px;\n}\n\n.pswp__preloader--active {\n opacity: 1;\n}\n\n.pswp__preloader--active .pswp__preloader__icn {\n background: url(\"../images/preloader.gif\") 0 0 no-repeat;\n}\n\n.pswp--css_animation .pswp__preloader--active {\n opacity: 1;\n}\n\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {\n animation: clockwise 500ms linear infinite;\n}\n\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {\n animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;\n}\n\n.pswp--css_animation .pswp__preloader__icn {\n position: absolute;\n top: 15px;\n left: 15px;\n width: 14px;\n height: 14px;\n margin: 0;\n background: none;\n opacity: 0.75;\n}\n\n.pswp--css_animation .pswp__preloader__cut {\n position: relative;\n width: 7px;\n height: 14px;\n overflow: hidden;\n}\n\n.pswp--css_animation .pswp__preloader__donut {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 14px;\n height: 14px;\n margin: 0;\n background: none;\n border: 2px solid var(--color-white);\n border-bottom-color: transparent;\n border-left-color: transparent;\n border-radius: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n .pswp__preloader {\n position: relative;\n top: auto;\n left: auto;\n float: right;\n margin: 0;\n }\n}\n\n@keyframes clockwise {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes donut-rotate {\n 0% {\n transform: rotate(0);\n }\n\n 50% {\n transform: rotate(-140deg);\n }\n\n 100% {\n transform: rotate(0);\n }\n}\n\n.pswp__ui {\n z-index: 1550;\n visibility: visible;\n opacity: 1;\n -webkit-font-smoothing: auto;\n}\n\n.pswp__top-bar {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 44px;\n}\n\n.pswp__caption,\n.pswp__top-bar,\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n backface-visibility: hidden;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n will-change: opacity;\n}\n\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n visibility: visible;\n}\n\n.pswp__ui--idle .pswp__top-bar {\n opacity: 0;\n}\n\n.pswp__ui--idle .pswp__button--arrow--left,\n.pswp__ui--idle .pswp__button--arrow--right {\n opacity: 0;\n}\n\n.pswp__ui--hidden .pswp__top-bar,\n.pswp__ui--hidden .pswp__caption,\n.pswp__ui--hidden .pswp__button--arrow--left,\n.pswp__ui--hidden .pswp__button--arrow--right {\n opacity: 0.001;\n}\n\n.pswp__ui--one-slide .pswp__button--arrow--left,\n.pswp__ui--one-slide .pswp__button--arrow--right,\n.pswp__ui--one-slide .pswp__counter {\n display: none;\n}\n\n.pswp__element--disabled {\n display: none !important;\n}\n\n.pswp--minimal--dark .pswp__top-bar {\n background: none;\n}\n"]}
\ No newline at end of file
diff --git a/assets/built/source.js b/assets/built/source.js
index 24d8cee..d83bd3b 100644
--- a/assets/built/source.js
+++ b/assets/built/source.js
@@ -1,2 +1,2 @@
-function dropdown(){const r=window.matchMedia("(max-width: 767px)"),a=document.querySelector(".gh-navigation"),s=a.querySelector(".gh-navigation-menu"),l=s?.querySelector(".nav");if(l){const e=document.querySelector(".gh-navigation-logo"),t=l.innerHTML;r.matches&&l.querySelectorAll("li").forEach(function(e,t){e.style.transitionDelay=.03*(t+1)+"s"});const n=function(){if(!r.matches){for(var e=[];l.offsetWidth+64>s.offsetWidth&&l.lastElementChild;)e.unshift(l.lastElementChild),l.lastElementChild.remove();if(e.length){const o=document.createElement("button"),i=(o.setAttribute("class","gh-more-toggle gh-icon-button"),o.setAttribute("aria-label","More"),o.innerHTML='',document.createElement("div"));i.setAttribute("class","gh-dropdown"),10<=e.length?(a.classList.add("is-dropdown-mega"),i.style.gridTemplateRows=`repeat(${Math.ceil(e.length/2)}, 1fr)`):a.classList.remove("is-dropdown-mega"),e.forEach(function(e){i.appendChild(e)}),o.appendChild(i),l.appendChild(o);var t=o.getBoundingClientRect(),n=window.innerWidth/2;t.left{l.innerHTML=t,n()},1)})}}function lightbox(e){document.querySelectorAll(e).forEach(function(e){e.addEventListener("click",function(e){var t=e;t.preventDefault();for(var n,o=[],i=0,r=t.target.closest(".kg-card").previousElementSibling;r&&(r.classList.contains("kg-image-card")||r.classList.contains("kg-gallery-card"));){var a=[];r.querySelectorAll("img").forEach(function(e){a.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e}),i+=1}),r=r.previousElementSibling,o=a.concat(o)}t.target.classList.contains("kg-image")?o.push({src:t.target.getAttribute("src"),msrc:t.target.getAttribute("src"),w:t.target.getAttribute("width"),h:t.target.getAttribute("height"),el:t.target}):(n=!1,t.target.closest(".kg-gallery-card").querySelectorAll("img").forEach(function(e){o.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e}),n||e===t.target?n=!0:i+=1}));for(var s=t.target.closest(".kg-card").nextElementSibling;s&&(s.classList.contains("kg-image-card")||s.classList.contains("kg-gallery-card"));)s.querySelectorAll("img").forEach(function(e){o.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e})}),s=s.nextElementSibling;e=document.querySelectorAll(".pswp")[0];new PhotoSwipe(e,PhotoSwipeUI_Default,o,{bgOpacity:.9,closeOnScroll:!0,fullscreenEl:!1,history:!1,index:i,shareEl:!1,zoomEl:!1,getThumbBoundsFn:function(e){var e=o[e].el,t=window.pageYOffset||document.documentElement.scrollTop,e=e.getBoundingClientRect();return{x:e.left,y:e.top+t,w:e.width}}}).init()})})}function pagination(e=!0,s,l=!1){const c=document.querySelector(".gh-feed");if(!c)return;let t=!1;async function n(){var t=document.querySelector("link[rel=next]");if(t)try{var e=await(await fetch(t.href)).text(),n=(new DOMParser).parseFromString(e,"text/html"),o=n.querySelectorAll(".gh-feed:not(.gh-featured):not(.gh-related) > *");const r=document.createDocumentFragment(),a=[];o.forEach(function(e){e=document.importNode(e,!0);l&&(e.style.visibility="hidden"),r.appendChild(e),a.push(e)}),c.appendChild(r),s&&s(a,d);var i=n.querySelector("link[rel=next]");i&&i.href?t.href=i.href:(t.remove(),u&&u.remove())}catch(e){throw t.remove(),e}}const o=document.querySelector(".gh-footer"),u=document.querySelector(".gh-loadmore"),d=(!document.querySelector("link[rel=next]")&&u&&u.remove(),async function(){o.getBoundingClientRect().top<=window.innerHeight&&document.querySelector("link[rel=next]")&&await n()});const i=new IntersectionObserver(async function(e){if(!t){if(t=!0,e[0].isIntersecting)if(l)await n();else for(;o.getBoundingClientRect().top<=window.innerHeight&&document.querySelector("link[rel=next]");)await n();t=!1,document.querySelector("link[rel=next]")||i.disconnect()}});e?i.observe(o):u.addEventListener("click",n)}!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){var n;if(e&&t)return-1==(n=(n=this._events=this._events||{})[e]=n[e]||[]).indexOf(t)&&n.push(t),this},t.once=function(e,t){var n;if(e&&t)return this.on(e,t),((n=this._onceEvents=this._onceEvents||{})[e]=n[e]||{})[t]=!0,this},t.off=function(e,t){e=this._events&&this._events[e];if(e&&e.length)return-1!=(t=e.indexOf(t))&&e.splice(t,1),this},t.emitEvent=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){n=n.slice(0),t=t||[];for(var o=this._onceEvents&&this._onceEvents[e],i=0;i"+e.label+"",T.parseShareButtonOut&&(i=T.parseShareButtonOut(e,i));v.children[0].innerHTML=i,v.children[0].onclick=z}}function r(e){for(var t=0;tT.fitControlsWidth?(t=T.barsSize,T.captionEl&&"auto"===t.bottom?(h||((h=s.createEl("pswp__caption pswp__caption--fake")).appendChild(s.createEl("pswp__caption__center")),p.insertBefore(h,f),s.addClass(p,"pswp__ui--fit")),T.addCaptionHTMLFn(e,h,!0)?(e=h.clientHeight,n.bottom=parseInt(e,10)||44):n.bottom=t.top):n.bottom="auto"===t.bottom?0:t.bottom,n.top=t.top):n.top=n.bottom=0}function P(){function e(e){if(e)for(var t=e.length,n=0;nt.min[e]?n[e]=t.min[e]:n[e]=mt&&(Fe=0f.currItem.fitRatio&&Wt(Ie))}}var V,X,$,g,Q,J,ee,te,o,v,ne,oe,ie,re,ae,a,se,le,ce,ue,de,me,pe,i,fe,he,ge,ve,ye,we,s,xe,be,Ee,Ie,Ce,Te,Se,l,ke,Ae,De,Le,_e,c,u,Me,d,Oe,y,Fe,Re,Pe,Ze,ze,qe,Ne=e(),Be=e(),w=e(),x={},Ue=0,We={},b=e(),E=0,He=!0,Ke=[],je={},Ye=!1,Ge={},I=function(e){var t=Ge[e];if(t){var n=Array.prototype.slice.call(arguments);n.shift();for(var o=0;of.currItem.fitRatio?Ye||(cn(f.currItem,!1,!0),Ye=!0):Ye&&(cn(f.currItem),Ye=!1)),Ve(Oe,w.x,w.y,v))},Xe=function(e){e.container&&Ve(e.container.style,e.initialPosition.x,e.initialPosition.y,e.initialZoomLevel,e)},$e=function(e,t){t[me]=oe+e+"px, 0px"+ie},Qe=function(e,t){var n;!h.loop&&t&&(t=g+(b.x*Ue-e)/b.x,n=Math.round(e-M.x),t<0&&0=O()-1&&n<0)&&(e=M.x+n*h.mainScrollEndFriction),M.x=e,$e(e,Q)},Je=function(e,t){var n=Et[e]-We[e];return Be[e]+Ne[e]+n-t/ne*n},k=function(e,t){e.x=t.x,e.y=t.y,t.id&&(e.id=t.id)},et=function(e){e.x=Math.round(e.x),e.y=Math.round(e.y)},tt=null,nt=function(){tt&&(p.unbind(document,"mousemove",nt),p.addClass(m,"pswp--has_mouse"),h.mouseUsed=!0,I("mouseUsed")),tt=setTimeout(function(){tt=null},100)},ot=function(e,t){e=sn(f.currItem,x,e);return t&&(d=e),e},it=function(e){return(e=e||f.currItem).initialZoomLevel},rt=function(e){return 0<(e=e||f.currItem).w?h.maxSpreadZoom:1},A={},at=0,st=function(e){A[e]&&(A[e].raf&&he(A[e].raf),at--,delete A[e])},lt=function(e){A[e]&&st(e),A[e]||(at++,A[e]={})},ct=function(){for(var e in A)A.hasOwnProperty(e)&&st(e)},ut=function(e,t,n,o,i,r,a){function s(){A[e]&&(l=C()-c,o<=l?(st(e),r(n),a&&a()):(r((n-t)*i(l/o)+t),A[e].raf=fe(s)))}var l,c=C();lt(e);s()},z={shout:I,listen:r,viewportSize:x,options:h,isMainScrollAnimating:function(){return y},getZoomLevel:function(){return v},getCurrentIndex:function(){return g},isDragging:function(){return l},isZooming:function(){return u},setScrollOffset:function(e,t){We.x=e,we=We.y=t,I("updateScrollOffset",We)},applyZoomPan:function(e,t,n,o){w.x=t,w.y=n,v=e,S(o)},init:function(){if(!V&&!X){f.framework=p,f.template=m,f.bg=p.getChildByClass(m,"pswp__bg"),ge=m.className,V=!0,s=p.detectFeatures(),fe=s.raf,he=s.caf,me=s.transform,ye=s.oldIE,f.scrollWrap=p.getChildByClass(m,"pswp__scroll-wrap"),f.container=p.getChildByClass(f.scrollWrap,"pswp__container"),Q=f.container.style,f.itemHolders=a=[{el:f.container.children[0],wrap:0,index:-1},{el:f.container.children[1],wrap:0,index:-1},{el:f.container.children[2],wrap:0,index:-1}],a[0].el.style.display=a[2].el.style.display="none",me?(t=s.perspective&&!i,oe="translate"+(t?"3d(":"("),ie=s.perspective?", 0px)":")"):(me="left",p.addClass(m,"pswp--ie"),$e=function(e,t){t.left=e+"px"},Xe=function(e){var t=1=O())&&(g=0),f.currItem=en(g),(s.isOldIOSPhone||s.isOldAndroid)&&(He=!1),m.setAttribute("aria-hidden","false"),h.modal&&(He?m.style.position="fixed":(m.style.position="absolute",m.style.top=p.getScrollY()+"px")),void 0===we&&(I("initialLayout"),we=ve=p.getScrollY());var n="pswp--open ";for(h.mainClass&&(n+=h.mainClass+" "),h.showHideOpacity&&(n+="pswp--animate_opacity "),n=(n=(n+=i?"pswp--touch":"pswp--notouch")+(s.animationName?" pswp--css_animation":""))+(s.svg?" pswp--svg":""),p.addClass(m,n),f.updateSize(),J=-1,E=null,e=0;e<3;e++)$e((e+J)*b.x,a[e].el.style);ye||p.bind(f.scrollWrap,te,f),r("initialZoomInEnd",function(){f.setContent(a[0],g-1),f.setContent(a[2],g+1),a[0].el.style.display=a[2].el.style.display="block",h.focus&&m.focus(),p.bind(document,"keydown",f),s.transform&&p.bind(f.scrollWrap,"click",f),h.mouseUsed||p.bind(document,"mousemove",nt),p.bind(window,"resize scroll orientationchange",f),I("bindEvents")}),f.setContent(a[1],g),f.updateCurrItem(),I("afterInit"),He||(re=setInterval(function(){at||l||u||v!==f.currItem.initialZoomLevel||f.updateSize()},1e3)),p.addClass(m,"pswp--visible")}var t},close:function(){V&&(X=!(V=!1),I("close"),p.unbind(window,"resize scroll orientationchange",f),p.unbind(window,"scroll",o.scroll),p.unbind(document,"keydown",f),p.unbind(document,"mousemove",nt),s.transform&&p.unbind(f.scrollWrap,"click",f),l&&p.unbind(window,ee,f),clearTimeout(xe),I("unbindEvents"),tn(f.currItem,null,!0,f.destroy))},destroy:function(){I("destroy"),Xt&&clearTimeout(Xt),m.setAttribute("aria-hidden","true"),m.className=ge,re&&clearInterval(re),p.unbind(f.scrollWrap,te,f),p.unbind(window,"scroll",f),St(),ct(),Ge=null},panTo:function(e,t,n){n||(e>d.min.x?e=d.min.x:ed.min.y?t=d.min.y:td.min[e]||rd.min[e]&&(c=h.panEndFriction,d.min[e],n=d.min[e]-Be[e]),(n<=0||l<0)&&1gt.x&&(i=gt.x)):d.min.x!==d.max.x&&(o=r)):(rf.currItem.fitRatio&&(w[e]+=t[e]*c)):(void 0!==i&&(Qe(i,!0),_e=i!==gt.x),d.min.x!==d.max.x&&(void 0!==o?w.x=o:_e||(w.x+=t.x*c)),void 0!==i)},Bt=function(){var e,t,n,o,i,r;c&&0!==(e=c.length)&&(k(D,c[0]),L.x=D.x-_.x,L.y=D.y-_.y,u&&1f.currItem.initialZoomLevel+f.currItem.initialZoomLevel/15&&(ze=!0),n=1,o=it(),i=rt(),t=mt&&(L.x-=c[0].x-ft.x),Math.abs(L.y)>=mt)&&(L.y-=c[0].y-ft.y),_.x=D.x,_.y=D.y,0===L.x&&0===L.y||("v"===Fe&&h.closeOnVerticalDrag&&!At()?(Ne.y+=L.y,w.y+=L.y,r=Rt(),Te=!0,I("onVerticalDrag",r),T(r),S()):(Ft(C(),D.x,D.y),De=!0,d=f.currItem.bounds,Nt("x",L)||(Nt("y",L),et(w),S())))))},Ut=function(){var t,n,o={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(e){n=(1d.min[t]?o.backAnimDestination[t]=d.min[t]:w[t]=O()&&(g=h.loop?0:O()-1,i=!0),i&&!h.loop||(E+=o,Ue-=o,n=!0));var e=b.x*Ue,r=Math.abs(e-M.x),a=n||e>M.x==0The image could not be loaded.',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return $t.length}},rn=function(){return{center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}}},an=function(e,t,n){var o=e.bounds;o.center.x=Math.round((F.x-t)/2),o.center.y=Math.round((F.y-n)/2)+e.vGap.top,o.max.x=t>F.x?Math.round(F.x-t):o.center.x,o.max.y=n>F.y?Math.round(F.y-n)+e.vGap.top:o.center.y,o.min.x=t>F.x?0:o.center.x,o.min.y=n>F.y?e.vGap.top:o.center.y},sn=function(e,t,n){var o,i;return e.src&&!e.loadError?((o=!n)&&(e.vGap||(e.vGap={top:0,bottom:0}),I("parseVerticalMargin",e)),F.x=t.x,F.y=t.y-e.vGap.top-e.vGap.bottom,o&&(t=F.x/e.w,i=F.y/e.h,e.fitRatio=t=d.max.x&&n<=d.min.y&&n>=d.max.y)&&e.preventDefault(),f.panTo(t,n)},toggleDesktopZoom:function(e){e=e||{x:x.x/2+We.x,y:x.y/2+We.y};var t=h.getDoubleTapZoom(!0,f.currItem),n=v===t;f.mouseZoomedIn=!n,f.zoomTo(n?f.currItem.initialZoomLevel:t,e,333),p[(n?"remove":"add")+"Class"](m,"pswp--zoomed-in")}}});function pn(){hn&&clearTimeout(hn),vn&&clearTimeout(vn)}function fn(){var e=Sn(),t={};if(!(e.length<5)){var n,o=e.split("&");for(r=0;r .kg-image[width][height], .kg-gallery-image > img"),reframe(document.querySelectorAll(['.gh-content iframe[src*="youtube.com"]','.gh-content iframe[src*="youtube-nocookie.com"]','.gh-content iframe[src*="player.vimeo.com"]','.gh-content iframe[src*="kickstarter.com"][src*="video.html"]',".gh-content object",".gh-content embed"].join(","))),dropdown(),document.body.classList.contains("home-template")||document.body.classList.contains("post-template")||pagination(),document.querySelectorAll(".gh-content > table:not(.gist table)").forEach(function(e){var t=document.createElement("div");t.className="gh-table",e.parentNode.insertBefore(t,e),t.appendChild(e)});
+!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){var n;if(e&&t)return-1==(n=(n=this._events=this._events||{})[e]=n[e]||[]).indexOf(t)&&n.push(t),this},t.once=function(e,t){var n;if(e&&t)return this.on(e,t),((n=this._onceEvents=this._onceEvents||{})[e]=n[e]||{})[t]=!0,this},t.off=function(e,t){e=this._events&&this._events[e];if(e&&e.length)return-1!=(t=e.indexOf(t))&&e.splice(t,1),this},t.emitEvent=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){n=n.slice(0),t=t||[];for(var i=this._onceEvents&&this._onceEvents[e],r=0;r"+e.label+"",T.parseShareButtonOut&&(r=T.parseShareButtonOut(e,r));y.children[0].innerHTML=r,y.children[0].onclick=B}}function a(e){for(var t=0;tT.fitControlsWidth?(t=T.barsSize,T.captionEl&&"auto"===t.bottom?(f||((f=s.createEl("pswp__caption pswp__caption--fake")).appendChild(s.createEl("pswp__caption__center")),m.insertBefore(f,g),s.addClass(m,"pswp__ui--fit")),T.addCaptionHTMLFn(e,f,!0)?(e=f.clientHeight,n.bottom=parseInt(e,10)||44):n.bottom=t.top):n.bottom="auto"===t.bottom?0:t.bottom,n.top=t.top):n.top=n.bottom=0}function M(){function e(e){if(e)for(var t=e.length,n=0;nt.min[e]?n[e]=t.min[e]:n[e]=pt&&(Oe=0g.currItem.fitRatio&&Gt(we))}}var j,V,X,h,Q,J,ee,te,i,y,ne,ie,re,ae,oe,o,se,le,ue,ce,de,pe,me,r,ge,fe,he,ye,ve,be,s,Ee,Se,xe,we,Ie,Te,Ae,l,Ce,ke,Re,Le,De,u,c,Pe,d,Fe,v,Oe,Ne,Me,_e,Be,Ue,He=e(),ze=e(),b=e(),E={},$e=0,Ge={},S=e(),x=0,Ze=!0,qe=[],We={},Ke=!1,Ye={},w=function(e){var t=Ye[e];if(t){var n=Array.prototype.slice.call(arguments);n.shift();for(var i=0;ig.currItem.fitRatio?Ke||(un(g.currItem,!1,!0),Ke=!0):Ke&&(un(g.currItem),Ke=!1)),je(Fe,b.x,b.y,y))},Ve=function(e){e.container&&je(e.container.style,e.initialPosition.x,e.initialPosition.y,e.initialZoomLevel,e)},Xe=function(e,t){t[pe]=ie+e+"px, 0px"+re},Qe=function(e,t){var n;!f.loop&&t&&(t=h+(S.x*$e-e)/S.x,n=Math.round(e-P.x),t<0&&0=F()-1&&n<0)&&(e=P.x+n*f.mainScrollEndFriction),P.x=e,Xe(e,Q)},Je=function(e,t){var n=xt[e]-Ge[e];return ze[e]+He[e]+n-t/ne*n},C=function(e,t){e.x=t.x,e.y=t.y,t.id&&(e.id=t.id)},et=function(e){e.x=Math.round(e.x),e.y=Math.round(e.y)},tt=null,nt=function(){tt&&(m.unbind(document,"mousemove",nt),m.addClass(p,"pswp--has_mouse"),f.mouseUsed=!0,w("mouseUsed")),tt=setTimeout(function(){tt=null},100)},it=function(e,t){e=sn(g.currItem,E,e);return t&&(d=e),e},rt=function(e){return(e=e||g.currItem).initialZoomLevel},at=function(e){return 0<(e=e||g.currItem).w?f.maxSpreadZoom:1},k={},ot=0,st=function(e){k[e]&&(k[e].raf&&fe(k[e].raf),ot--,delete k[e])},lt=function(e){k[e]&&st(e),k[e]||(ot++,k[e]={})},ut=function(){for(var e in k)k.hasOwnProperty(e)&&st(e)},ct=function(e,t,n,i,r,a,o){function s(){k[e]&&(l=I()-u,i<=l?(st(e),a(n),o&&o()):(a((n-t)*r(l/i)+t),k[e].raf=ge(s)))}var l,u=I();lt(e);s()},B={shout:w,listen:a,viewportSize:E,options:f,isMainScrollAnimating:function(){return v},getZoomLevel:function(){return y},getCurrentIndex:function(){return h},isDragging:function(){return l},isZooming:function(){return c},setScrollOffset:function(e,t){Ge.x=e,be=Ge.y=t,w("updateScrollOffset",Ge)},applyZoomPan:function(e,t,n,i){b.x=t,b.y=n,y=e,A(i)},init:function(){if(!j&&!V){g.framework=m,g.template=p,g.bg=m.getChildByClass(p,"pswp__bg"),he=p.className,j=!0,s=m.detectFeatures(),ge=s.raf,fe=s.caf,pe=s.transform,ve=s.oldIE,g.scrollWrap=m.getChildByClass(p,"pswp__scroll-wrap"),g.container=m.getChildByClass(g.scrollWrap,"pswp__container"),Q=g.container.style,g.itemHolders=o=[{el:g.container.children[0],wrap:0,index:-1},{el:g.container.children[1],wrap:0,index:-1},{el:g.container.children[2],wrap:0,index:-1}],o[0].el.style.display=o[2].el.style.display="none",pe?(t=s.perspective&&!r,ie="translate"+(t?"3d(":"("),re=s.perspective?", 0px)":")"):(pe="left",m.addClass(p,"pswp--ie"),Xe=function(e,t){t.left=e+"px"},Ve=function(e){var t=1=F())&&(h=0),g.currItem=en(h),(s.isOldIOSPhone||s.isOldAndroid)&&(Ze=!1),p.setAttribute("aria-hidden","false"),f.modal&&(Ze?p.style.position="fixed":(p.style.position="absolute",p.style.top=m.getScrollY()+"px")),void 0===be&&(w("initialLayout"),be=ye=m.getScrollY());var n="pswp--open ";for(f.mainClass&&(n+=f.mainClass+" "),f.showHideOpacity&&(n+="pswp--animate_opacity "),n=(n=(n+=r?"pswp--touch":"pswp--notouch")+(s.animationName?" pswp--css_animation":""))+(s.svg?" pswp--svg":""),m.addClass(p,n),g.updateSize(),J=-1,x=null,e=0;e<3;e++)Xe((e+J)*S.x,o[e].el.style);ve||m.bind(g.scrollWrap,te,g),a("initialZoomInEnd",function(){g.setContent(o[0],h-1),g.setContent(o[2],h+1),o[0].el.style.display=o[2].el.style.display="block",f.focus&&p.focus(),m.bind(document,"keydown",g),s.transform&&m.bind(g.scrollWrap,"click",g),f.mouseUsed||m.bind(document,"mousemove",nt),m.bind(window,"resize scroll orientationchange",g),w("bindEvents")}),g.setContent(o[1],h),g.updateCurrItem(),w("afterInit"),Ze||(ae=setInterval(function(){ot||l||c||y!==g.currItem.initialZoomLevel||g.updateSize()},1e3)),m.addClass(p,"pswp--visible")}var t},close:function(){j&&(V=!(j=!1),w("close"),m.unbind(window,"resize scroll orientationchange",g),m.unbind(window,"scroll",i.scroll),m.unbind(document,"keydown",g),m.unbind(document,"mousemove",nt),s.transform&&m.unbind(g.scrollWrap,"click",g),l&&m.unbind(window,ee,g),clearTimeout(Ee),w("unbindEvents"),tn(g.currItem,null,!0,g.destroy))},destroy:function(){w("destroy"),Vt&&clearTimeout(Vt),p.setAttribute("aria-hidden","true"),p.className=he,ae&&clearInterval(ae),m.unbind(g.scrollWrap,te,g),m.unbind(window,"scroll",g),At(),ut(),Ye=null},panTo:function(e,t,n){n||(e>d.min.x?e=d.min.x:ed.min.y?t=d.min.y:td.min[e]||ad.min[e]&&(u=f.panEndFriction,d.min[e],n=d.min[e]-ze[e]),(n<=0||l<0)&&1ht.x&&(r=ht.x)):d.min.x!==d.max.x&&(i=a)):(ag.currItem.fitRatio&&(b[e]+=t[e]*u)):(void 0!==r&&(Qe(r,!0),De=r!==ht.x),d.min.x!==d.max.x&&(void 0!==i?b.x=i:De||(b.x+=t.x*u)),void 0!==r)},zt=function(){var e,t,n,i,r,a;u&&0!==(e=u.length)&&(C(R,u[0]),L.x=R.x-D.x,L.y=R.y-D.y,c&&1g.currItem.initialZoomLevel+g.currItem.initialZoomLevel/15&&(Be=!0),n=1,i=rt(),r=at(),t=pt&&(L.x-=u[0].x-gt.x),Math.abs(L.y)>=pt)&&(L.y-=u[0].y-gt.y),D.x=R.x,D.y=R.y,0===L.x&&0===L.y||("v"===Oe&&f.closeOnVerticalDrag&&!kt()?(He.y+=L.y,b.y+=L.y,a=Nt(),Te=!0,w("onVerticalDrag",a),T(a),A()):(Ot(I(),R.x,R.y),Re=!0,d=g.currItem.bounds,Ht("x",L)||(Ht("y",L),et(b),A())))))},$t=function(){var t,n,i={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(e){n=(1d.min[t]?i.backAnimDestination[t]=d.min[t]:b[t]=F()&&(h=f.loop?0:F()-1,r=!0),r&&!f.loop||(x+=i,$e-=i,n=!0));var e=S.x*$e,a=Math.abs(e-P.x),o=n||e>P.x==0The image could not be loaded.',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return Xt.length}},an=function(){return{center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}}},on=function(e,t,n){var i=e.bounds;i.center.x=Math.round((O.x-t)/2),i.center.y=Math.round((O.y-n)/2)+e.vGap.top,i.max.x=t>O.x?Math.round(O.x-t):i.center.x,i.max.y=n>O.y?Math.round(O.y-n)+e.vGap.top:i.center.y,i.min.x=t>O.x?0:i.center.x,i.min.y=n>O.y?e.vGap.top:i.center.y},sn=function(e,t,n){var i,r;return e.src&&!e.loadError?((i=!n)&&(e.vGap||(e.vGap={top:0,bottom:0}),w("parseVerticalMargin",e)),O.x=t.x,O.y=t.y-e.vGap.top-e.vGap.bottom,i&&(t=O.x/e.w,r=O.y/e.h,e.fitRatio=t=d.max.x&&n<=d.min.y&&n>=d.max.y)&&e.preventDefault(),g.panTo(t,n)},toggleDesktopZoom:function(e){e=e||{x:E.x/2+Ge.x,y:E.y/2+Ge.y};var t=f.getDoubleTapZoom(!0,g.currItem),n=y===t;g.mouseZoomedIn=!n,g.zoomTo(n?g.currItem.initialZoomLevel:t,e,333),m[(n?"remove":"add")+"Class"](p,"pswp--zoomed-in")}}});function mn(){fn&&clearTimeout(fn),yn&&clearTimeout(yn)}function gn(){var e=An(),t={};if(!(e.length<5)){var n,i=e.split("&");for(a=0;a=o.reach);v+=y.value.length,y=y.next){var b=y.value;if(n.length>t.length)return;if(!(b instanceof D)){var E,S=1;if(g){if(!(E=P(h,v,t,m))||E.index>=t.length)break;var x=E.index,w=E.index+E[0].length,I=v;for(I+=y.value.length;I<=x;)I+=(y=y.next).value.length;if(v=I-=y.value.length,y.value instanceof D)continue;for(var T=y;T!==n.tail&&(Io.reach&&(o.reach=b),y.prev);C&&(R=F(n,R,C),v+=C.length),O(n,R,S),y=F(n,R,new D(s,p?L.tokenize(A,p):A,f,A)),k&&F(n,y,k),1o.reach&&(o.reach=C.reach)}}}}}(e,r,t,r.head,0),r),o=[],s=a.head.next;s!==a.tail;)o.push(s.value),s=s.next;return o},hooks:{all:{},add:function(e,t){var n=L.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=L.hooks.all[e];if(n&&n.length)for(var i,r=0;i=n[r++];)i(t)}},Token:D};function D(e,t,n,i){this.type=e,this.content=t,this.alias=n,this.length=0|(i||"").length}function P(e,t,n,i){e.lastIndex=t;t=e.exec(n);return t&&i&&t[1]&&(e=t[1].length,t.index+=e,t[0]=t[0].slice(e)),t}function u(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function F(e,t,n){var i=t.next,n={value:n,prev:t,next:i};return t.next=n,i.prev=n,e.length++,n}function O(e,t,n){for(var i=t.next,r=0;r"+a.content+""+a.tag+">"},l.document)?((i=L.util.currentScript())&&(L.filename=i.src,i.hasAttribute("data-manual"))&&(L.manual=!0),L.manual||("loading"===(e=document.readyState)||"interactive"===e&&i&&i.defer?document.addEventListener("DOMContentLoaded",r):window.requestAnimationFrame?window.requestAnimationFrame(r):window.setTimeout(r,16))):l.addEventListener&&!L.disableWorkerMessageHandler&&l.addEventListener("message",function(e){var e=JSON.parse(e.data),t=e.language,n=e.code,e=e.immediateClose;l.postMessage(L.highlight(n,L.languages[t],t)),e&&l.close()},!1),L;function r(){L.manual||L.highlightAll()}}(_self);function dropdown(){const a=window.matchMedia("(max-width: 767px)"),o=document.querySelector(".gh-navigation"),s=o.querySelector(".gh-navigation-menu"),l=s?.querySelector(".nav");if(l){const e=document.querySelector(".gh-navigation-logo"),t=l.innerHTML;a.matches&&l.querySelectorAll("li").forEach(function(e,t){e.style.transitionDelay=.03*(t+1)+"s"});const n=function(){if(!a.matches){for(var e=[];l.offsetWidth+64>s.offsetWidth&&l.lastElementChild;)e.unshift(l.lastElementChild),l.lastElementChild.remove();if(e.length){const i=document.createElement("button"),r=(i.setAttribute("class","gh-more-toggle gh-icon-button"),i.setAttribute("aria-label","More"),i.innerHTML='',document.createElement("div"));r.setAttribute("class","gh-dropdown"),10<=e.length?(o.classList.add("is-dropdown-mega"),r.style.gridTemplateRows=`repeat(${Math.ceil(e.length/2)}, 1fr)`):o.classList.remove("is-dropdown-mega"),e.forEach(function(e){r.appendChild(e)}),i.appendChild(r),l.appendChild(i);var t=i.getBoundingClientRect(),n=window.innerWidth/2;t.left{l.innerHTML=t,n()},1)})}}function lightbox(e){document.querySelectorAll(e).forEach(function(e){e.addEventListener("click",function(e){var t=e;t.preventDefault();for(var n,i=[],r=0,a=t.target.closest(".kg-card").previousElementSibling;a&&(a.classList.contains("kg-image-card")||a.classList.contains("kg-gallery-card"));){var o=[];a.querySelectorAll("img").forEach(function(e){o.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e}),r+=1}),a=a.previousElementSibling,i=o.concat(i)}t.target.classList.contains("kg-image")?i.push({src:t.target.getAttribute("src"),msrc:t.target.getAttribute("src"),w:t.target.getAttribute("width"),h:t.target.getAttribute("height"),el:t.target}):(n=!1,t.target.closest(".kg-gallery-card").querySelectorAll("img").forEach(function(e){i.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e}),n||e===t.target?n=!0:r+=1}));for(var s=t.target.closest(".kg-card").nextElementSibling;s&&(s.classList.contains("kg-image-card")||s.classList.contains("kg-gallery-card"));)s.querySelectorAll("img").forEach(function(e){i.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e})}),s=s.nextElementSibling;e=document.querySelectorAll(".pswp")[0];new PhotoSwipe(e,PhotoSwipeUI_Default,i,{bgOpacity:.9,closeOnScroll:!0,fullscreenEl:!1,history:!1,index:r,shareEl:!1,zoomEl:!1,getThumbBoundsFn:function(e){var e=i[e].el,t=window.pageYOffset||document.documentElement.scrollTop,e=e.getBoundingClientRect();return{x:e.left,y:e.top+t,w:e.width}}}).init()})})}function pagination(e=!0,s,l=!1){const u=document.querySelector(".gh-feed");if(!u)return;let t=!1;async function n(){var t=document.querySelector("link[rel=next]");if(t)try{var e=await(await fetch(t.href)).text(),n=(new DOMParser).parseFromString(e,"text/html"),i=n.querySelectorAll(".gh-feed:not(.gh-featured):not(.gh-related) > *");const a=document.createDocumentFragment(),o=[];i.forEach(function(e){e=document.importNode(e,!0);l&&(e.style.visibility="hidden"),a.appendChild(e),o.push(e)}),u.appendChild(a),s&&s(o,d);var r=n.querySelector("link[rel=next]");r&&r.href?t.href=r.href:(t.remove(),c&&c.remove())}catch(e){throw t.remove(),e}}const i=document.querySelector(".gh-footer"),c=document.querySelector(".gh-loadmore"),d=(!document.querySelector("link[rel=next]")&&c&&c.remove(),async function(){i.getBoundingClientRect().top<=window.innerHeight&&document.querySelector("link[rel=next]")&&await n()});const r=new IntersectionObserver(async function(e){if(!t){if(t=!0,e[0].isIntersecting)if(l)await n();else for(;i.getBoundingClientRect().top<=window.innerHeight&&document.querySelector("link[rel=next]");)await n();t=!1,document.querySelector("link[rel=next]")||r.disconnect()}});e?r.observe(i):c.addEventListener("click",n)}"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={},n=(n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}),t=(n["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]},{});t[e]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:n},Prism.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(e,t){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+e+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:Prism.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+t.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup);t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript,Prism.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^[\t ]*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/},function(n){function i(e,n){return e.replace(/<<(\d+)>>/g,function(e,t){return"(?:"+n[+t]+")"})}function r(e,t,n){return RegExp(i(e,t),n||"")}function e(e,t){for(var n=0;n>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var t="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",a="class enum interface record struct",o="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var u=l(a),c=RegExp(l(t+" "+a+" "+o+" "+s)),o=l(a+" "+o+" "+s),t=l(t+" "+a+" "+s),a=e("<(?:[^<>;=+\\-*/%&|^]|<>)*>",2),s=e("\\((?:[^()]|<>)*\\)",2),d="@?\\b[A-Za-z_]\\w*\\b",p=i("<<0>>(?:\\s*<<1>>)?",[d,a]),o=i("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*",[o,p]),m="\\[\\s*(?:,\\s*)*\\]",g=i("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?",[o,m]),f=i("[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>",[a,s,m]),f=i("\\(<<0>>+(?:,<<0>>+)+\\)",[f]),f=i("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?",[f,o,m]),m={keyword:c,punctuation:/[<>()?,.:[\]]/},h="'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",y='"(?:\\\\.|[^\\\\"\r\n])*"',g=(n.languages.csharp=n.languages.extend("clike",{string:[{pattern:r("(^|[^$\\\\])<<0>>",['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),lookbehind:!0,greedy:!0},{pattern:r("(^|[^@$\\\\])<<0>>",[y]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:r("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)",[o]),lookbehind:!0,inside:m},{pattern:r("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)",[d,f]),lookbehind:!0,inside:m},{pattern:r("(\\busing\\s+)<<0>>(?=\\s*=)",[d]),lookbehind:!0},{pattern:r("(\\b<<0>>\\s+)<<1>>",[u,p]),lookbehind:!0,inside:m},{pattern:r("(\\bcatch\\s*\\(\\s*)<<0>>",[o]),lookbehind:!0,inside:m},{pattern:r("(\\bwhere\\s+)<<0>>",[d]),lookbehind:!0},{pattern:r("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>",[g]),lookbehind:!0,inside:m},{pattern:r("\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))",[f,t,d]),inside:m}],keyword:c,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),n.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),n.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:r("([(,]\\s*)<<0>>(?=\\s*:)",[d]),lookbehind:!0,alias:"punctuation"}}),n.languages.insertBefore("csharp","class-name",{namespace:{pattern:r("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])",[d]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:r("(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))",[s]),lookbehind:!0,alias:"class-name",inside:m},"return-type":{pattern:r("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))",[f,o]),inside:m,alias:"class-name"},"constructor-invocation":{pattern:r("(\\bnew\\s+)<<0>>(?=\\s*[[({])",[f]),lookbehind:!0,inside:m,alias:"class-name"},"generic-method":{pattern:r("<<0>>\\s*<<1>>(?=\\s*\\()",[d,a]),inside:{function:r("^<<0>>",[d]),generic:{pattern:RegExp(a),alias:"class-name",inside:m}}},"type-list":{pattern:r("\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))",[u,p,d,f,c.source,s,"\\bnew\\s*\\(\\s*\\)"]),lookbehind:!0,inside:{"record-arguments":{pattern:r("(^(?!new\\s*\\()<<0>>\\s*)<<1>>",[p,s]),lookbehind:!0,greedy:!0,inside:n.languages.csharp},keyword:c,"class-name":{pattern:RegExp(f),greedy:!0,inside:m},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),y+"|"+h),t=i("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>",[g]),a=e(i("[^\"'/()]|<<0>>|\\(<>*\\)",[t]),2),u="\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",d=i("<<0>>(?:\\s*\\(<<1>>*\\))?",[o,a]),v=(n.languages.insertBefore("csharp","class-name",{attribute:{pattern:r("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])",[u,d]),lookbehind:!0,greedy:!0,inside:{target:{pattern:r("^<<0>>(?=\\s*:)",[u]),alias:"keyword"},"attribute-arguments":{pattern:r("\\(<<0>>*\\)",[a]),inside:n.languages.csharp},"class-name":{pattern:RegExp(o),inside:{punctuation:/\./}},punctuation:/[:,]/}}}),":[^}\r\n]+"),p=e(i("[^\"'/()]|<<0>>|\\(<>*\\)",[t]),2),s=i("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[p,v]),c=e(i("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<>*\\)",[g]),2),f=i("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[c,v]);function b(e,t){return{interpolation:{pattern:r("((?:^|[^{])(?:\\{\\{)*)<<0>>",[e]),lookbehind:!0,inside:{"format-string":{pattern:r("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)",[t,v]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:n.languages.csharp}}},string:/[\s\S]+/}}n.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:r('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"',[s]),lookbehind:!0,greedy:!0,inside:b(s,p)},{pattern:r('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"',[f]),lookbehind:!0,greedy:!0,inside:b(f,c)}],char:{pattern:RegExp(h),greedy:!0}}),n.languages.dotnet=n.languages.cs=n.languages.csharp}(Prism),Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:Prism.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,Prism.languages.insertBefore("inside","punctuation",{directive:Prism.languages.aspnet.directive},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp-script":{pattern:/(
{{!-- This tag outputs all your advanced SEO meta, structured data, and other important settings, it should always be the last tag before the closing head tag --}}
diff --git a/gulpfile.js b/gulpfile.js
index 472ad1f..c235846 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -45,7 +45,10 @@ function hbs(done) {
function css(done) {
pump([
- src('assets/css/screen.css', {sourcemaps: true}),
+ src([
+ 'assets/css/*.css'
+ ], {sourcemaps: true}),
+ concat('source.css'),
postcss([
easyimport,
autoprefixer(),
diff --git a/package.json b/package.json
index f6c683f..cb71abc 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "source",
+ "name": "source-davejansen",
"description": "A default theme for the Ghost publishing platform",
"demo": "https://source.ghost.io",
"version": "1.3.2",
@@ -44,8 +44,8 @@
"@tryghost/release-utils": "0.8.1",
"autoprefixer": "10.4.7",
"beeper": "2.1.0",
- "cssnano": "5.1.12",
- "gscan": "4.43.1",
+ "cssnano": "^6.0.2",
+ "gscan": "4.39.4",
"gulp": "4.0.2",
"gulp-concat": "2.6.1",
"gulp-livereload": "4.0.2",
@@ -53,8 +53,8 @@
"gulp-uglify": "3.0.2",
"gulp-zip": "5.1.0",
"inquirer": "8.2.4",
- "postcss": "8.2.13",
- "postcss-easy-import": "4.0.0",
+ "postcss": "^8.4.32",
+ "postcss-easy-import": "^4.0.0",
"pump": "3.0.0"
},
"browserslist": [
diff --git a/partials/components/footer.hbs b/partials/components/footer.hbs
index 84be330..a21aa19 100644
--- a/partials/components/footer.hbs
+++ b/partials/components/footer.hbs
@@ -1,6 +1,5 @@