From 584003e9659cd5974279c3403566e753041ddd54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86ndra=20Rininsland?= Date: Sun, 17 Dec 2023 17:46:55 +0000 Subject: [PATCH] Improves GitHub Actions by: - Moving `built/` code to `.gitignore` - `built/` removed from VC - `npm run build` run via postinstall hook - `actions/setup-node` added to workflow so code is built in CI --- .github/workflows/deploy-theme.yml | 4 ++++ .gitignore | 3 ++- assets/built/index.css | 2 -- assets/built/index.css.map | 1 - assets/built/index.js | 2 -- assets/built/index.js.map | 1 - package.json | 3 ++- 7 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 assets/built/index.css delete mode 100644 assets/built/index.css.map delete mode 100644 assets/built/index.js delete mode 100644 assets/built/index.js.map diff --git a/.github/workflows/deploy-theme.yml b/.github/workflows/deploy-theme.yml index e7b56210..526fc184 100644 --- a/.github/workflows/deploy-theme.yml +++ b/.github/workflows/deploy-theme.yml @@ -10,6 +10,10 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 + - uses: actions/setup-node@v4 + with: + node-version: 18 + - run: npm ci - name: Deploy Ghost Theme uses: TryGhost/action-deploy-theme@v1 with: diff --git a/.gitignore b/.gitignore index 1f1e8708..ef6b4e50 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,5 @@ projectFilesBackup .DS_Store -dist/ \ No newline at end of file +dist/ +assets/built/ \ No newline at end of file diff --git a/assets/built/index.css b/assets/built/index.css deleted file mode 100644 index 9f233799..00000000 --- a/assets/built/index.css +++ /dev/null @@ -1,2 +0,0 @@ -:root{--color-primary:var(--ghost-accent-color,#3eb0ef);--color-base:#131313;--color-border:#ddd;--color-bg:#f5f5f5;--color-success:#80b912;--color-error:#f05230;--font-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-serif:Georgia,Times,serif;--font-mono:Menlo,Courier,monospace;--font-light:100;--font-normal:400;--font-bold:700;--font-heavy:800;--xlarge:1680px;--large:1280px;--medium:980px;--small:740px;--xsmall:480px;--height:4rem;--margin:2rem;--radius:0.5rem}*,:after,:before{box-sizing:border-box}html{-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:62.5%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;color:#464646;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-sans-serif);font-size:1.5rem;font-style:normal;font-weight:400;line-height:1.6em;min-height:100vh;scroll-behavior:smooth}blockquote,body,dd,dl,figcaption,figure,form,hr,li,ol,p,pre,table,ul,video{margin:0;padding:0}ol[class],ul[class]{list-style:none;padding:0}img{display:block;height:auto;max-width:100%}button,input,select,textarea{-webkit-appearance:none;font:inherit}fieldset{border:0;margin:0;padding:0}label{font-size:.9em;font-weight:700}hr,label{display:block}hr{border:0;border-top:1px solid;height:1px;opacity:.2;position:relative;width:100%}::-moz-selection{background:#cbeafb;text-shadow:none}::selection{background:#cbeafb;text-shadow:none}mark{background-color:#fdffb6}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ul:not([class]) li+li{margin-top:.6em}a:not([class]){-webkit-text-decoration-skip:ink;color:#3eb0ef;color:var(--color-primary);text-decoration-skip-ink:auto}a[class]{color:inherit;-webkit-text-decoration:none;text-decoration:none;transition:.4s ease}a[class]:hover{transition:.2s ease}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.15em;margin:0}h1{font-size:4.6rem;letter-spacing:-.5px}@media (max-width:500px){h1{font-size:2.7rem}}h2{font-size:3.6rem}@media (max-width:500px){h2{font-size:2.2rem}}h3{font-size:3.2rem}@media (max-width:500px){h3{font-size:1.8rem}}h4{font-size:2.6rem}h5{font-size:2.4rem}h6{font-size:2.2rem}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.gh-input,.gh-textarea{background:#f5f5f5;background:var(--color-bg);border:1px solid #ddd;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius);color:inherit;display:block;outline:0;padding:0 .6em;-webkit-text-decoration:none;text-decoration:none;width:100%}.gh-input:focus{border-color:#3eb0ef;border-color:var(--color-primary)}.gh-select{height:4rem;height:var(--height);padding-right:4rem;padding-right:var(--height);text-overflow:ellipsis}.gh-select option{background:#f5f5f5;background:var(--color-bg);color:#3eb0ef;color:var(--color-primary)}.gh-select:focus::-ms-value{background-color:transparent}.gh-select::-ms-expand{display:none}.gh-input,.gh-select{height:4rem;height:var(--height)}.gh-textarea{padding:.3em .6em;resize:vertical}.gh-check{display:block;margin-right:-2em;opacity:0;width:1em;z-index:-1}.gh-check+label{align-items:center;color:#131313;color:var(--color-base);cursor:pointer;display:flex;font-size:1em;font-weight:400;font-weight:var(--font-normal);padding-left:calc(2.4rem + .75em);padding-left:calc(var(--height)*.6 + .75em);padding-right:2rem;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gh-check+label:before{background:#f5f5f5;background:var(--color-bg);border:1px solid #ddd;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius);content:"";display:inline-block;height:2.4rem;height:calc(var(--height)*.6);line-height:2.24rem;line-height:calc(var(--height)*.56);margin-right:1rem;text-align:center;width:2.4rem;width:calc(var(--height)*.6)}.gh-check:checked+label:before{background:#3eb0ef;background:var(--color-primary);border-color:#3eb0ef;border-color:var(--color-primary);color:#f5f5f5;color:var(--color-bg);content:"✓"}.gh-check:focus+label:before{border-color:#3eb0ef;border-color:var(--color-primary);box-shadow:0 0 0 1px #3eb0ef;box-shadow:0 0 0 1px var(--color-primary)}.gh-check+label:before{border-radius:.5rem;border-radius:var(--radius);border-radius:100%}.gh-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:.5rem;border-radius:var(--radius);cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-sans-serif);font-size:1.4rem;font-weight:400;font-weight:var(--font-normal);height:4rem;height:var(--height);line-height:4rem;line-height:var(--height);min-width:75px;padding:0 2rem;text-align:center;-webkit-text-decoration:none;text-decoration:none;transition:.4s ease;white-space:nowrap}.gh-button.gh-button-fit{width:100%}.gh-button.gh-button-small{font-size:1.2rem;height:3.6rem;height:calc(var(--height)*.9);line-height:3.6rem;line-height:calc(var(--height)*.9);padding:0 1.5rem}.gh-button.gh-button-large{font-size:1.7rem;height:4.8rem;height:calc(var(--height)*1.2);line-height:4.8rem;line-height:calc(var(--height)*1.2);padding:0 2.5rem}.gh-button.gh-button-disabled,.gh-button:disabled{opacity:.4;pointer-events:none}.gh-button{background-color:transparent;box-shadow:inset 0 0 0 2px currentColor;color:inherit}.gh-button:hover{box-shadow:inset 0 0 0 2px #3eb0ef;box-shadow:inset 0 0 0 2px var(--color-primary);color:#3eb0ef!important;color:var(--color-primary)!important;-webkit-text-decoration:none;text-decoration:none;transition:.2s ease}.gh-button.gh-button-primary{box-shadow:none;color:#fff!important}.gh-button.gh-button-primary,.gh-button.gh-button-primary:hover{background-color:#3eb0ef;background-color:var(--color-primary)}.gh-head{background:inherit;font-size:1.6rem;line-height:1.3em;padding:3vmin 4vmin}.gh-head a{color:inherit;-webkit-text-decoration:none;text-decoration:none}.gh-head-inner{grid-gap:40px;display:grid;grid-auto-flow:row dense;grid-template-columns:1fr auto 1fr}.gh-head-brand{align-items:center;display:flex;grid-column-start:2;max-width:200px;text-align:center;word-break:break-all}.gh-head-logo{display:block;font-size:2.2rem;font-weight:600;line-height:1.2em;padding:10px 0}.gh-head-logo img{max-height:40px}.gh-head-menu{align-items:center;display:flex}.gh-head-menu .nav{align-items:center;display:inline-flex;flex-wrap:wrap;list-style:none}.gh-head-menu .nav li{margin:0 1.5vmin 0 0;padding:0}.gh-head-menu .nav a{display:inline-block;padding:5px 0}.gh-head-menu .nav-current a{box-shadow:inset 0 -1px 0 0 currentcolor}.gh-head-actions{display:flex;list-style:none;text-align:right}.gh-head-actions,.gh-head-actions-list{align-items:center;justify-content:flex-end}.gh-head-actions-list{display:inline-flex;flex-wrap:wrap;gap:10px}.gh-head-actions-list a:not([class]){display:inline-block;margin:0 0 0 1.5vmin;padding:5px 0}.gh-burger{cursor:pointer;display:none;position:relative}.gh-burger-box{align-items:center;display:flex;height:33px;justify-content:center;position:relative;width:33px}.gh-burger-inner{height:100%;width:100%}.gh-burger-box:before{transition:transform .3s cubic-bezier(.2,.6,.3,1),width .3s cubic-bezier(.2,.6,.3,1)}.gh-burger-box:before,.gh-burger-inner:after,.gh-burger-inner:before{background:currentcolor;bottom:0;content:"";display:block;height:1px;left:0;margin:auto;position:absolute;top:0;width:100%;will-change:transform,width}.gh-burger-inner:after,.gh-burger-inner:before{transition:transform .25s cubic-bezier(.2,.7,.3,1),width .25s cubic-bezier(.2,.7,.3,1)}.gh-burger-inner:before{transform:translatey(-6px)}.gh-burger-inner:after{transform:translatey(6px)}body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner:before{transform:translatey(-8px)}body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner:after{transform:translatey(8px)}.gh-head-open .gh-burger-box:before{transform:translatex(19px);transition:transform .2s cubic-bezier(.2,.7,.3,1),width .2s cubic-bezier(.2,.7,.3,1);width:0}.gh-head-open .gh-burger-inner:before{transform:translatex(6px) rotate(135deg);width:26px}.gh-head-open .gh-burger-inner:after{transform:translatex(6px) rotate(-135deg);width:26px}.gh-head-brandnavactions .gh-head-brand{grid-column-start:1}.gh-head-brandnav .gh-container{grid-gap:0;grid-template-columns:auto max-content max-content}.gh-head-brandnav .gh-head-brand{grid-column-start:1}.gh-head-brandnav .gh-head-menu{margin-left:40px}.gh-head-brandnav .gh-head-menu .nav li{margin:0 0 0 1.5vmin;padding:0}.gh-head-stacked .gh-container{grid-gap:2vmin;grid-template-columns:1fr}.gh-head-stacked .gh-head-brand{display:flex;grid-column-start:1;justify-content:center;max-width:none;text-align:center;width:100%}.gh-head-stacked .gh-head-actions,.gh-head-stacked .gh-head-actions-list,.gh-head-stacked .gh-head-menu{justify-content:center}.gh-head-stacked .gh-head-actions a:first-child svg{margin-left:0}@media (max-width:900px){.gh-burger{display:inline-block}#gh-head{overflow:hidden;transition:all .4s ease-out}#gh-head .gh-head-inner{grid-template-columns:1fr;height:100%}#gh-head .gh-head-brand{align-items:center;display:flex;grid-column-start:auto;justify-content:space-between;max-width:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:10}#gh-head .gh-head-logo{font-size:2.2rem}#gh-head .gh-head-logo img{max-height:40px}#gh-head .gh-head-menu{align-items:center;align-self:center;display:flex;flex-direction:column;font-size:3.6rem;font-weight:300;line-height:1.1em;margin:0 0 10vh;text-align:center}#gh-head .gh-head-menu .nav li{margin:5px 0}#gh-head .gh-head-menu .nav a{padding:8px 0}#gh-head .gh-head-menu .nav{align-items:center;display:flex;flex-direction:column}#gh-head .gh-head-actions{justify-content:center;padding:20px 0;text-align:left}#gh-head .gh-head-actions a{margin:0 10px}#gh-head .gh-head-actions,#gh-head .gh-head-menu{display:none}.gh-head-open{height:100vh;overflow:hidden}.gh-head-open #gh-head{bottom:0;left:0;overflow-y:scroll;position:fixed;right:0;top:0;z-index:900}.gh-head-open #gh-head .gh-head-inner{grid-template-rows:auto 1fr auto}.gh-head-open #gh-head .gh-head-actions,.gh-head-open #gh-head .gh-head-menu{display:flex}}@media (max-width:600px){#gh-head .gh-head-menu{font-size:6vmin}}.gh-canvas,.kg-width-full.kg-content-wide{--gap:4vw;--main:min(var(--content-width,720px),100% - var(--gap) * 2);--wide:minmax(0,calc((var(--container-width, 1200px) - var(--content-width, 720px))/2));--full:minmax(var(--gap),1fr);display:grid;grid-template-columns:[full-start] minmax(4vw,1fr) [wide-start] minmax(0,240px) [main-start] min(720px,100% - 4vw * 2) [main-end] minmax(0,240px) [wide-end] minmax(4vw,1fr) [full-end];grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end]}.gh-canvas>*{grid-column:main-start/main-end}.kg-content-wide>div,.kg-width-wide{grid-column:wide-start/wide-end}.kg-width-full{grid-column:full-start/full-end}.kg-width-full img{width:100%}.gh-content>*+*{margin-top:4vmin}.gh-content [id]:not(:first-child){margin:1.5em 0 0}.gh-content>[id]+*{margin-top:1.5rem}.gh-content [id]+.kg-card,.gh-content blockquote+.kg-card{margin-top:6vmin}.gh-canvas>blockquote,.gh-canvas>dl,.gh-canvas>ol,.gh-canvas>p,.gh-canvas>ul{font-family:Georgia,Times,serif;font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.6em}.gh-content>dl,.gh-content>ol,.gh-content>ul{padding-left:1.9em}.gh-content hr{margin-top:6vmin}.gh-content hr+*{margin-top:6vmin!important}.gh-content blockquote{font-style:italic;position:relative}.gh-content blockquote:before{background:#3eb0ef;background:var(--color-primary);bottom:0;content:"";left:-1.5em;position:absolute;top:0;width:.3rem}@media (max-width:650px){.gh-canvas blockquote,.gh-canvas dl,.gh-canvas ol,.gh-canvas p,.gh-canvas ul{font-size:1.8rem}.gh-content blockquote:before{left:-4vmin}}.gh-content .kg-card+:not(.kg-card),.gh-content :not(.kg-card):not([id])+.kg-card{margin-top:6vmin}figcaption{color:rgba(0,0,0,.5);font-size:1.3rem;font-weight:600;line-height:1.4em;padding:1.5rem 1.5rem 0;text-align:center}figcaption strong{color:rgba(0,0,0,.8)}.gh-canvas :not(pre) code{background:#f0f6f9;border:1px solid #e1eaef;border-radius:.25em;color:#dc0050;font-size:.9em;font-weight:400!important;line-height:1em;padding:.15em .4em;vertical-align:middle}.gh-canvas>pre{background:hsla(0,0%,100%,.8);border-radius:5px;box-shadow:0 2px 6px -2px rgba(0,0,0,.1),0 0 1px rgba(0,0,0,.4);overflow:scroll;padding:16px 20px}.kg-embed-card{align-items:center;display:flex;flex-direction:column;width:100%}.kg-embed-card>:where(iframe[src*="youtube.com"],iframe[src*="vimeo.com"]){aspect-ratio:16/9;height:auto;width:100%}.kg-image-card img{margin:auto}.kg-width-full.kg-card-hascaption{display:grid;grid-template-columns:inherit}.kg-width-wide.kg-card-hascaption img{grid-column:wide-start/wide-end}.kg-width-full.kg-card-hascaption img{grid-column:1/-1}.kg-width-full.kg-card-hascaption figcaption{grid-column:main-start/main-end}.gh-content table{border-collapse:collapse;width:100%}.gh-content th{font-size:.75em;padding:.5em .8em;text-align:left;text-transform:uppercase}.gh-content td{padding:.4em .7em}.gh-content tbody tr:nth-child(odd){background-color:rgba(0,0,0,.1);padding:1px}.gh-content tbody tr:nth-child(2n+2) td:last-child{box-shadow:inset 1px 0 rgba(0,0,0,.1),inset -1px 0 rgba(0,0,0,.1)}.gh-content tbody tr:nth-child(2n+2) td{box-shadow:inset 1px 0 rgba(0,0,0,.1)}.gh-content tbody tr:last-child{border-bottom:1px solid rgba(0,0,0,.1)}.gh-readmore{font-size:2.6rem;padding:8vmin 4vmin}.gh-readmore-inner{grid-gap:8vmin;display:grid;grid-template-columns:1fr 1fr}.gh-readmore-prev{justify-content:flex-end;text-align:right}.gh-readmore a{color:currentColor;display:flex;-webkit-text-decoration:none;text-decoration:none}.gh-readmore h4{font-size:inherit;width:100%}.gh-readmore svg{display:inline-block;height:1em;margin:.15em 0 0;vertical-align:middle}.gh-readmore h4+svg,.gh-readmore svg+h4{margin-left:2vmin}@media (max-width:700px){.gh-readmore{font-size:1.6rem}.gh-readmore svg{margin:.1em 0 0}}.gh-auth-form{margin:0 auto 10vmin;max-width:600px;text-align:center;width:100%}.gh-auth-title{font-size:4.2rem;margin:0 0 .1em}.gh-auth-form p{color:rgba(0,0,0,.6);font-size:1.7rem;margin:10px 0 4vmin}.gh-auth-form p small{display:inline-block;font-size:1.4rem;margin:15px 0 0}.gh-auth-box{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:460px}.gh-auth-box .gh-button{margin-left:10px}@media (max-width:600px){.gh-auth-box{flex-direction:column;max-width:400px}.gh-auth-box .gh-button{margin:15px 0 0;width:100%}}form[data-members-form] .gh-button-loader,form[data-members-form] .message-error,form[data-members-form] .message-success{display:none}.gh-button-content{min-width:100px}.message-error svg,.message-success svg{height:15px;margin-right:5px;position:relative;top:-1px;width:15px}.message-success svg{fill:#fff}.message-error svg{fill:#f05230;fill:var(--color-error)}form[data-members-form].error .message-error,form[data-members-form].success .message-success{background:#131313;background:var(--color-base);border-radius:.5rem;border-radius:var(--radius);color:#fff;font-size:1.4rem;font-weight:500;left:4vmin;line-height:1.5em;margin:0 auto;max-width:calc(1400px - 8vmin);padding:10px 0;position:fixed;right:4vmin;text-align:center;top:20px;z-index:9999}form[data-members-form].success .message-success{background:#80b912;background:var(--color-success)}form[data-members-form].error .message-error{background:#fff;box-shadow:0 0 0 1px #f05230;box-shadow:var(--color-error) 0 0 0 1px;color:#f05230;color:var(--color-error)}form[data-members-form] .gh-button{min-width:120px;position:relative}form[data-members-form].loading .gh-button-content{visibility:hidden}form[data-members-form].loading .gh-button-loader{bottom:-30%;display:inline-block;left:50%;margin:0 0 0 -19px;position:absolute;transform:scale(.6)}.gh-button-loader svg path,.gh-button-loader svg rect{fill:#fff}form[data-members-form].error .message-error,form[data-members-form].success .message-success{display:block}.gh-error{display:flex;flex:1 0 auto;flex-direction:column;justify-content:center;padding-bottom:2vmin}.gh-error-content{flex:1 0 auto;text-align:center}.gh-error-code{font-size:14vmin;margin:0}.gh-error-description{font-size:4vmin;font-weight:300;line-height:1.2em;margin:0 auto;max-width:600px;opacity:.6;padding:0 2rem}.gh-error-link{display:block;font-size:1.6rem;margin-top:4vmin}.gh-error-stack{margin:0 auto;max-width:600px;padding:8vmin 0;text-align:left}.gh-error-stack-list{font-size:1.4rem;margin:4vmin 0 0}.gh-error-stack-list>li{border-top:1px solid rgba(0,0,0,.1);margin:0;padding:2rem 0}.gh-error-stack-function{color:red;font-size:1.8rem;margin:0 0 .5em}.gh-foot{align-items:center;display:flex;justify-content:center;padding:8vmin 4vmin 4vmin}.gh-foot .gh-container{width:auto}.gh-foot a{color:inherit}.gh-foot-menu{display:flex}.gh-foot-menu,.gh-foot-menu .nav{align-items:center;justify-content:center}.gh-foot-menu .nav{display:inline-flex;flex-wrap:wrap;font-size:1.8rem;list-style:none}.gh-foot-menu .nav li{margin:0 1.5vmin;padding:0}.gh-foot-menu .nav a{box-shadow:inset 0 -1px 0 0 currentcolor;display:inline-block;padding:3px 0;-webkit-text-decoration:none;text-decoration:none}.gh-foot-meta{font-size:1.5rem;margin:2rem 0;opacity:.75;text-align:center}@media (max-width:700px){.gh-foot-menu .nav{font-size:1.6rem}}a.gh-powered,a.gh-powered:hover{align-items:center;background:#fff;border:none;border-radius:5px;box-shadow:0 0 0 1px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.08);color:#383838;cursor:pointer;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:12px;font-weight:600;letter-spacing:-.3px;line-height:12px;padding:6px 9px 6px 6px;-webkit-text-decoration:none;text-decoration:none}a.gh-powered svg{height:16px;margin:0 6px 0 0;width:16px}.gh-pagination .pagination{display:flex;justify-content:space-between;margin-bottom:4vmin;margin-top:4vmin}.gh-post-comments{margin-bottom:4vmin;margin-top:8vmin}.gh-viewport,html{background:#fff;display:flex;flex-direction:column;min-height:100vh}.gh-main{display:flex;flex:1 0 auto;flex-direction:column}.gh-page{padding:0 4vmin}.gh-article,.gh-postfeed{padding:8vmin 0}.gh-postfeed{grid-gap:4.8vmin 4vmin;display:grid;gap:4.8vmin 4vmin;grid-template-columns:repeat(auto-fit,minmax(min(350px,100%),1fr))}.gh-postfeed>:first-child{grid-column:1/-1}.gh-container{margin:0 auto;max-width:1200px;width:100%}.gh-head-actions a:not(.gh-button){align-items:center;display:inline-flex;margin:0;padding:10px}.gh-head-actions a svg{fill:currentcolor;height:1.8rem}.gh-head-actions a:first-child svg{margin-left:20px}.gh-head-actions a:last-child svg{height:2rem}.gh-card-link{display:flex;flex-direction:column}.gh-card-image{aspect-ratio:1/1;margin-bottom:4vmin;-o-object-fit:cover;object-fit:cover;width:100%}.gh-card-image:first-of-type{aspect-ratio:16/9}.gh-card-meta{display:block;font-size:1.4rem;letter-spacing:.5px;line-height:1.2em;margin:0 0 1rem;opacity:.8;text-transform:uppercase}.gh-card-content{font-size:1.6rem;margin:0 auto;max-width:720px;text-align:center}.gh-card-content p{margin:1.2rem 0;padding:0 3vmin}.gh-card-content>strong{box-shadow:inset 0 -1px 0 0 currentColor;display:inline-block;font-weight:500;opacity:.75;padding:1px 0}.gh-page-head{margin:0 auto;padding:8vmin 0 4vmin;text-align:center}.gh-page-image{margin:4vmin 0 0}.gh-page-head>p{font-size:1.3em;line-height:1.4em;margin:.3em auto 0;max-width:720px;opacity:.5;padding:0 6vmin}@media (max-width:700px){.gh-page-head>p{font-size:1.6rem}}.gh-header{padding:0 0 8vmin;text-align:center}.gh-post-meta{display:block;font-size:1.4rem;letter-spacing:.5px;margin:0 0 1rem;opacity:.8;text-transform:uppercase}.gh-excerpt{margin:1rem 0 0}.gh-feature-image{grid-column:wide-start/wide-end;margin:8vmin 0 0;width:100%}.gh-feature-image img{margin-left:auto;margin-right:auto;width:100%}.gh-post-footer{margin:2rem 0}.gh-author-image{border-radius:100%;height:12vmin;margin:0 auto 1.5em;-o-object-fit:cover;object-fit:cover;overflow:hidden;width:12vmin}.gh-author-meta{font-size:1.2em;margin:2vmin 0 0}.gh-author-links{align-items:center;display:flex;justify-content:center}.gh-author-links a{align-items:center;display:inline-flex;margin:0 .75vmin;position:relative}.gh-author-links a+a:before{background:rgba(0,0,0,.3);content:"";display:block;height:1em;margin:0 1.25vmin 0 0;transform:rotate(20deg);width:1px}@media (max-width:700px){.gh-author-meta{font-size:1.6rem}} -/*# sourceMappingURL=index.css.map */ \ No newline at end of file diff --git a/assets/built/index.css.map b/assets/built/index.css.map deleted file mode 100644 index efa62f08..00000000 --- a/assets/built/index.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["vars.css","components/global.css","components/forms.css","components/buttons.css","ghost/header.css","ghost/content.css","ghost/readmore.css","ghost/members.css","ghost/errors.css","ghost/footer.css","ghost/badge.css","ghost/pagination.css","ghost/comments.css","index.css"],"names":[],"mappings":"AAGA,MAGI,iDAAmD,CACnD,oBAAqB,CACrB,mBAAoB,CACpB,kBAAmB,CACnB,uBAAwB,CACxB,qBAAsB,CAGtB,yJAAoK,CACpK,gCAAmC,CACnC,mCAAsC,CACtC,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,gBAAiB,CAGjB,eAAgB,CAChB,cAAe,CACf,cAAe,CACf,aAAc,CACd,cAAe,CAGf,aAAc,CACd,aAAc,CACd,eAEJ,CC/BA,iBAGI,qBACJ,CAEA,KAEI,yCAA6C,CAD7C,eAEJ,CAEA,KAYI,kCAAmC,CACnC,iCAAkC,CAHlC,eAAgB,CANhB,aAAc,CACd,mIAAmC,CAAnC,kCAAmC,CACnC,gBAAiB,CAGjB,iBAAkB,CADlB,eAAgB,CADhB,iBAAkB,CANlB,gBAAiB,CAUjB,sBAGJ,CAGA,2EAfI,QAAS,CACT,SA8BJ,CAEA,oBAGI,eAAgB,CADhB,SAEJ,CAEA,IACI,aAAc,CAEd,WAAY,CADZ,cAEJ,CAEA,6BAKI,uBAAwB,CADxB,YAEJ,CAEA,SAGI,QAAS,CAFT,QAAS,CACT,SAEJ,CAEA,MAEI,cAAgB,CAChB,eACJ,CAEA,SALI,aAaJ,CARA,GAKI,QAAS,CACT,oBAAkC,CAFlC,UAAW,CAGX,UAAY,CANZ,iBAAkB,CAElB,UAKJ,CAEA,iBAEI,kBAAmB,CADnB,gBAEJ,CAHA,YAEI,kBAAmB,CADnB,gBAEJ,CAEA,KACI,wBACJ,CAEA,MACI,aACJ,CAEA,QAGI,aAAc,CACd,aAAc,CAFd,iBAAkB,CAGlB,uBACJ,CACA,IACI,SACJ,CACA,IACI,aACJ,CAEA,sBACI,eACJ,CAEA,eAEI,gCAA8B,CAD9B,aAA2B,CAA3B,0BAA2B,CAC3B,6BACJ,CAEA,SACI,aAAc,CACd,4BAAqB,CAArB,oBAAqB,CACrB,mBACJ,CAEA,eACI,mBACJ,CAEA,kBAQI,eAAgB,CADhB,kBAAmB,CADnB,QAGJ,CAEA,GACI,gBAAiB,CACjB,oBACJ,CACA,yBACI,GACI,gBACJ,CACJ,CAEA,GACI,gBACJ,CACA,yBACI,GACI,gBACJ,CACJ,CAEA,GACI,gBACJ,CACA,yBACI,GACI,gBACJ,CACJ,CAEA,GACI,gBACJ,CAEA,GACI,gBACJ,CAEA,GACI,gBACJ,CAGA,uCACI,EACI,kCAAqC,CACrC,qCAAuC,CAEvC,8BAAgC,CADhC,mCAEJ,CACJ,CCjMA,uBAEI,kBAA2B,CAA3B,0BAA2B,CAG3B,qBAAqC,CAArC,oCAAqC,CAFrC,mBAA4B,CAA5B,2BAA4B,CAG5B,aAAc,CACd,aAAc,CACd,SAAU,CACV,cAAgB,CAChB,4BAAqB,CAArB,oBAAqB,CACrB,UACJ,CAEA,gBACI,oBAAkC,CAAlC,iCACJ,CAEA,WACI,WAAqB,CAArB,oBAAqB,CACrB,kBAA4B,CAA5B,2BAA4B,CAC5B,sBACJ,CAEA,kBAEI,kBAA2B,CAA3B,0BAA2B,CAD3B,aAA2B,CAA3B,0BAEJ,CAEA,4BACI,4BACJ,CAEA,uBACI,YACJ,CAEA,qBAEI,WAAqB,CAArB,oBACJ,CAEA,aACI,iBAAoB,CACpB,eACJ,CAEA,UACI,aAAc,CACd,iBAAkB,CAClB,SAAU,CACV,SAAU,CACV,UACJ,CAEA,gBAGI,kBAAmB,CACnB,aAAwB,CAAxB,uBAAwB,CACxB,cAAe,CAHf,YAAa,CAIb,aAAc,CACd,eAA+B,CAA/B,8BAA+B,CAC/B,iCAAkD,CAAlD,2CAAkD,CAClD,kBAAmB,CACnB,iBAAkB,CAClB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBACJ,CAEA,uBAEI,kBAA2B,CAA3B,0BAA2B,CAE3B,qBAAqC,CAArC,oCAAqC,CADrC,mBAA4B,CAA5B,2BAA4B,CAE5B,UAAW,CACX,oBAAqB,CACrB,aAAiC,CAAjC,6BAAiC,CACjC,mBAAuC,CAAvC,mCAAuC,CAGvC,iBAAkB,CAFlB,iBAAkB,CAClB,YAAgC,CAAhC,4BAEJ,CAEA,+BAEI,kBAAgC,CAAhC,+BAAgC,CAChC,oBAAkC,CAAlC,iCAAkC,CAClC,aAAsB,CAAtB,qBAAsB,CACtB,WACJ,CAEA,6BAEI,oBAAkC,CAAlC,iCAAkC,CAClC,4BAA0C,CAA1C,yCACJ,CAGA,uBACI,mBAA4B,CAA5B,2BAA4B,CAI5B,kBAHJ,CCpGA,WAeI,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAVhB,QAAS,CACT,mBAA4B,CAA5B,2BAA4B,CAC5B,cAAe,CANf,oBAAqB,CAOrB,mIAAmC,CAAnC,kCAAmC,CACnC,gBAAiB,CACjB,eAA+B,CAA/B,8BAA+B,CAP/B,WAAqB,CAArB,oBAAqB,CAQrB,gBAA0B,CAA1B,yBAA0B,CAT1B,cAAe,CAEf,cAAe,CAQf,iBAAkB,CAClB,4BAAqB,CAArB,oBAAqB,CAGrB,mBAAqB,CAFrB,kBAGJ,CAEA,yBACI,UACJ,CAEA,2BAII,gBAAiB,CAHjB,aAAiC,CAAjC,6BAAiC,CACjC,kBAAsC,CAAtC,kCAAsC,CACtC,gBAEJ,CAEA,2BAII,gBAAiB,CAHjB,aAAiC,CAAjC,8BAAiC,CACjC,kBAAsC,CAAtC,mCAAsC,CACtC,gBAEJ,CAEA,kDAGI,UAAY,CADZ,mBAEJ,CAEA,WAEI,4BAA6B,CAC7B,uCAAA,CAFA,aAGJ,CAEA,iBAGI,kCAAgD,CAAhD,+CAAgD,CADhD,uBAAsC,CAAtC,oCAAsC,CADtC,4BAAqB,CAArB,oBAAqB,CAGrB,mBACJ,CAEA,6BAGI,eAAgB,CAFhB,oBAGJ,CAEA,gEAJI,wBAAsC,CAAtC,qCAMJ,CChEA,SAII,kBAAmB,CAFnB,gBAAiB,CACjB,iBAAkB,CAFlB,mBAIJ,CAEA,WACI,aAAc,CACd,4BAAqB,CAArB,oBACJ,CAEA,eAEI,aAAc,CADd,YAAa,CAGb,wBAAyB,CADzB,kCAEJ,CAMA,eAGI,kBAAmB,CADnB,YAAa,CADb,mBAAoB,CAGpB,eAAgB,CAChB,iBAAkB,CAClB,oBACJ,CAEA,cACI,aAAc,CAGd,gBAAiB,CADjB,eAAgB,CAEhB,iBAAkB,CAHlB,cAIJ,CAEA,kBACI,eACJ,CAMA,cAEI,kBAAmB,CADnB,YAEJ,CAEA,mBAGI,kBAAmB,CAFnB,mBAAoB,CACpB,cAAe,CAEf,eACJ,CAEA,sBACI,oBAAqB,CACrB,SACJ,CAEA,qBACI,oBAAqB,CACrB,aACJ,CAEA,6BACI,wCACJ,CAMA,iBACI,YAAa,CAGb,eAAgB,CAChB,gBACJ,CAEA,uCALI,kBAAmB,CADnB,wBAYJ,CANA,sBACI,mBAAoB,CAEpB,cAAe,CADf,QAIJ,CAEA,qCACI,oBAAqB,CACrB,oBAAqB,CACrB,aACJ,CAMA,WAGI,cAAe,CADf,YAAa,CADb,iBAGJ,CAEA,eAGI,kBAAmB,CADnB,YAAa,CAIb,WAAY,CAFZ,sBAAuB,CAHvB,iBAAkB,CAIlB,UAEJ,CAEA,iBAEI,WAAY,CADZ,UAEJ,CAEA,sBAWI,oFAEJ,CAEA,qEALI,uBAAwB,CALxB,QAAS,CAET,UAAW,CALX,aAAc,CAOd,UAAW,CALX,MAAO,CAEP,WAAY,CALZ,iBAAkB,CAElB,KAAM,CAKN,UAAW,CAIX,2BAiBJ,CAdA,+CAYI,sFAEJ,CAEA,wBACI,0BACJ,CACA,uBACI,yBACJ,CAEA,iEACI,0BACJ,CACA,gEACI,yBACJ,CAEA,oCAEI,0BAA2B,CAC3B,oFAA0F,CAF1F,OAGJ,CAEA,sCAEI,wCAAyC,CADzC,UAEJ,CAEA,qCAEI,yCAA0C,CAD1C,UAEJ,CAMA,wCACI,mBACJ,CAEA,gCACI,UAAW,CACX,kDACJ,CACA,iCACK,mBACL,CACA,gCACI,gBACJ,CACA,wCACI,oBAAqB,CACrB,SACJ,CAGA,+BAEI,cAAe,CADf,yBAEJ,CACA,gCAIK,YAAa,CAHb,mBAAoB,CAIpB,sBAAuB,CAFvB,cAAe,CAGf,iBAAkB,CAJlB,UAKL,CACA,wGAGI,sBACJ,CACA,oDACI,aACJ,CAOA,yBACI,WACI,oBACJ,CACA,SAEI,eAAgB,CADhB,2BAEJ,CACA,wBAEI,yBAA0B,CAD1B,WAEJ,CACA,wBAMI,kBAAmB,CADnB,YAAa,CAFb,sBAAuB,CAIvB,6BAA8B,CAH9B,cAAe,CAHf,iBAAkB,CAOlB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CANjB,UAOJ,CACA,uBACI,gBACJ,CACA,2BACI,eACJ,CACA,uBAII,kBAAmB,CAHnB,iBAAkB,CAClB,YAAa,CACb,qBAAsB,CAKtB,gBAAiB,CADjB,eAAgB,CAEhB,iBAAkB,CAHlB,eAAkB,CADlB,iBAKJ,CACA,+BACI,YACJ,CACA,8BACI,aACJ,CACA,4BAGI,kBAAmB,CAFnB,YAAa,CACb,qBAEJ,CACA,0BAEI,sBAAuB,CADvB,cAAe,CAEf,eACJ,CACA,4BACI,aACJ,CAEA,iDAEI,YACJ,CAEA,cAEI,YAAa,CADb,eAEJ,CACA,uBAII,QAAS,CACT,MAAO,CAEP,iBAAkB,CANlB,cAAe,CAEf,OAAQ,CADR,KAAM,CAIN,WAEJ,CACA,sCACI,gCACJ,CACA,6EAEI,YACJ,CACJ,CAEA,yBACI,uBACI,eACJ,CACJ,CCnUA,0CAEI,SAAU,CACV,4DAA+D,CAC/D,uFAA2F,CAC3F,6BAA+B,CAE/B,YAAa,CACb,uLAK0B,CAL1B,yJAMJ,CAEA,aACI,+BACJ,CAEA,oCAEI,+BACJ,CAEA,eACI,+BACJ,CAEA,mBACI,UACJ,CAMA,gBACI,gBACJ,CAEA,mCACI,gBACJ,CAEA,mBACI,iBACJ,CAEA,0DAEI,gBACJ,CAEA,6EAKI,+BAA8B,CAA9B,6BAA8B,CAE9B,cAAe,CADf,eAAgB,CAEhB,iBACJ,CAEA,6CAGI,kBACJ,CAEA,eACI,gBACJ,CAEA,iBACI,0BACJ,CAEA,uBAEI,iBAAkB,CADlB,iBAEJ,CAEA,8BAOI,kBAAgC,CAAhC,+BAAgC,CAFhC,QAAS,CAJT,UAAW,CAEX,WAAY,CADZ,iBAAkB,CAElB,KAAM,CAEN,WAEJ,CAEA,yBACI,6EAKI,gBACJ,CAEA,8BACI,WACJ,CACJ,CAUA,kFACI,gBACJ,CAEA,WAGI,oBAAsB,CAEtB,gBAAiB,CADjB,eAAgB,CAEhB,iBAAkB,CALlB,uBAAwB,CACxB,iBAKJ,CAEA,kBACI,oBACJ,CAEA,0BAQI,kBAAmB,CALnB,wBAAyB,CAMzB,mBAAqB,CAFrB,aAAc,CAFd,cAAgB,CADhB,yBAA2B,CAE3B,eAAgB,CAJhB,kBAA4B,CAD5B,qBASJ,CAEA,eAGI,6BAAiC,CACjC,iBAAkB,CAClB,+DAAiE,CAJjE,eAAgB,CAChB,iBAIJ,CAEA,eAGI,kBAAmB,CAFnB,YAAa,CACb,qBAAsB,CAEtB,UACJ,CAGA,2EAGI,iBAAoB,CADpB,WAAY,CADZ,UAGJ,CAEA,mBACI,WACJ,CAMA,kCACI,YAAa,CACb,6BACJ,CAEA,sCACI,+BACJ,CACA,sCACI,gBACJ,CAEA,6CACI,+BACJ,CAMA,kBACI,wBAAyB,CACzB,UACJ,CAEA,eAGI,eAAgB,CAFhB,iBAAoB,CACpB,eAAgB,CAEhB,wBACJ,CAEA,eACI,iBACJ,CAEA,oCACI,+BAAiC,CACjC,WACJ,CAEA,mDACI,iEAGJ,CAEA,wCACI,qCACJ,CAEA,gCACI,sCACJ,CCtOA,aAEI,gBAAiB,CADjB,mBAEJ,CAEA,mBAEI,cAAe,CADf,YAAa,CAEb,6BACJ,CAEA,kBACI,wBAAyB,CACzB,gBACJ,CAEA,eAEI,kBAAmB,CADnB,YAAa,CAEb,4BAAqB,CAArB,oBACJ,CAEA,gBAEI,iBAAkB,CADlB,UAEJ,CAEA,iBACI,oBAAqB,CAErB,UAAW,CACX,gBAAkB,CAFlB,qBAGJ,CAEA,wCAEI,iBACJ,CAEA,yBACI,aACI,gBACJ,CACA,iBACI,eACJ,CACJ,CC9CA,cAGI,oBAAqB,CADrB,eAAgB,CAEhB,iBAAkB,CAHlB,UAIJ,CAEA,eAEI,gBAAiB,CADjB,eAEJ,CAEA,gBAGI,oBAAA,CADA,gBAAiB,CADjB,mBAGJ,CAEA,sBACI,oBAAqB,CAErB,gBAAiB,CADjB,eAEJ,CAEA,aAEI,kBAAmB,CADnB,YAAa,CAEb,6BAA8B,CAE9B,aAAc,CADd,eAEJ,CAEA,wBACI,gBACJ,CAEA,yBACI,aACI,qBAAsB,CACtB,eACJ,CACA,wBAEI,eAAkB,CADlB,UAEJ,CACJ,CAKA,0HAGI,YACJ,CAEA,mBACI,eACJ,CAEA,wCAKI,WAAY,CADZ,gBAAiB,CAFjB,iBAAkB,CAClB,QAAS,CAGT,UACJ,CACA,qBACI,SACJ,CACA,mBACI,YAAwB,CAAxB,uBACJ,CAEA,8FAeI,kBAA6B,CAA7B,4BAA6B,CAC7B,mBAA4B,CAA5B,2BAA4B,CAN5B,UAAW,CACX,gBAAiB,CAEjB,eAAgB,CAThB,UAAW,CAQX,iBAAkB,CAJlB,aAAc,CADd,8BAA+B,CAE/B,cAAe,CAPf,cAAe,CAGf,WAAY,CASZ,iBAAkB,CAXlB,QAAS,CAGT,YAWJ,CACA,iDACI,kBAAgC,CAAhC,+BACJ,CACA,6CAEI,eAAgB,CAChB,4BAAwC,CAAxC,uCAAwC,CAFxC,aAAyB,CAAzB,wBAGJ,CAEA,mCAEI,eAAgB,CADhB,iBAEJ,CAKA,mDACI,iBACJ,CAGA,kDAII,WAAY,CAHZ,oBAAqB,CAErB,QAAS,CAET,kBAAmB,CAHnB,iBAAkB,CAIlB,mBACJ,CAEA,sDAEE,SACF,CAQA,8FACI,aACJ,CCzIA,UAEI,YAAa,CADb,aAAc,CAEd,qBAAsB,CACtB,sBAAuB,CACvB,oBACJ,CAEA,kBACI,aAAc,CACd,iBACJ,CAEA,eAEI,gBAAiB,CADjB,QAEJ,CAEA,sBAII,eAAgB,CAEhB,eAAgB,CADhB,iBAAkB,CAHlB,aAAc,CADd,eAAgB,CAMhB,UAAY,CAJZ,cAKJ,CAEA,eACI,aAAc,CAEd,gBAAiB,CADjB,gBAEJ,CAEA,gBAEI,aAAgB,CADhB,eAAgB,CAEhB,eAAgB,CAChB,eACJ,CAEA,qBAEI,gBAAiB,CADjB,gBAEJ,CAEA,wBAGI,mCAAqC,CADrC,QAAS,CADT,cAGJ,CAEA,yBAGI,SAAU,CADV,gBAAiB,CADjB,eAGJ,CCxDA,SAEI,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CACvB,yBACJ,CAEA,uBACI,UACJ,CAEA,WACI,aACJ,CAEA,cACI,YAGJ,CAEA,iCAJI,kBAAmB,CACnB,sBAUJ,CAPA,mBACI,mBAAoB,CACpB,cAAe,CAIf,gBAAiB,CADjB,eAEJ,CAEA,sBACI,gBAAiB,CACjB,SACJ,CAEA,qBAII,wCAAyC,CAHzC,oBAAqB,CACrB,aAAc,CACd,4BAAqB,CAArB,oBAEJ,CAEA,cAEI,gBAAiB,CADjB,aAAc,CAGd,WAAa,CADb,iBAEJ,CAEA,yBACI,mBACI,gBACJ,CACJ,CCxDA,gCAGI,kBAAmB,CAUnB,eAAgB,CARhB,WAAY,CASZ,iBAAkB,CAClB,6DAA+D,CAH/D,aAAc,CAId,cAAe,CAdf,mBAAoB,CAOpB,mIAA8J,CAH9J,cAAe,CAIf,eAAgB,CAFhB,oBAAsB,CADtB,gBAAiB,CAHjB,uBAAwB,CAOxB,4BAAqB,CAArB,oBAMJ,CAEA,iBACI,WAAY,CAEZ,gBAAiB,CADjB,UAEJ,CCtBA,2BACI,YAAa,CACb,6BAA8B,CAC9B,mBAAmB,CAAnB,gBACJ,CCLA,kBACI,mBAAyB,CAAzB,gBACJ,CC8BA,kBAKI,eAAmB,CAHnB,YAAa,CACb,qBAAsB,CACtB,gBAEJ,CAEA,SAEI,YAAa,CADb,aAAc,CAEd,qBACJ,CAEA,SACI,eACJ,CAMA,yBAHI,eAQJ,CALA,aAGI,sBAAkB,CAFlB,YAAa,CAEb,iBAAkB,CADlB,kEAGJ,CAEA,0BACI,gBACJ,CAEA,cAGI,aAAc,CADd,gBAAiB,CADjB,UAGJ,CAEA,mCAEI,kBAAmB,CADnB,mBAAoB,CAEpB,QAAS,CACT,YACJ,CAEA,uBAEI,iBAAkB,CADlB,aAEJ,CAEA,mCACI,gBACJ,CAEA,kCACI,WACJ,CASA,cACI,YAAa,CACb,qBACJ,CAEA,eAKI,gBAAmB,CADnB,mBAAoB,CADpB,mBAAiB,CAAjB,gBAAiB,CAFjB,UAKJ,CAEA,6BACI,iBACJ,CAGA,cACI,aAAc,CAEd,gBAAiB,CAEjB,mBAAqB,CADrB,iBAAkB,CAFlB,eAAgB,CAKhB,UAAY,CADZ,wBAEJ,CAEA,iBAII,gBAAiB,CAFjB,aAAc,CADd,eAAgB,CAEhB,iBAEJ,CAEA,mBACI,eAAgB,CAChB,eACJ,CAEA,wBAII,wCAAyC,CAHzC,oBAAqB,CAErB,eAAgB,CAEhB,WAAa,CAHb,aAIJ,CAMA,cACI,aAAc,CACd,qBAAsB,CACtB,iBACJ,CAEA,eACI,gBACJ,CAEA,gBAII,eAAgB,CAChB,iBAAkB,CAHlB,kBAAoB,CADpB,eAAgB,CAKhB,UAAY,CAHZ,eAIJ,CAEA,yBACI,gBACI,gBACJ,CACJ,CAMA,WACI,iBAAoB,CACpB,iBACJ,CAEA,cACI,aAAc,CAEd,gBAAiB,CACjB,mBAAqB,CAFrB,eAAgB,CAIhB,UAAY,CADZ,wBAEJ,CAEA,YACI,eACJ,CAEA,kBACI,+BAAkC,CAElC,gBAAiB,CADjB,UAEJ,CAEA,sBACI,gBAAmB,CAAnB,iBAAmB,CACnB,UACJ,CAEA,gBACI,aACJ,CAMA,iBAII,kBAAmB,CAHnB,aAAc,CAEd,mBAAoB,CAGpB,mBAAiB,CAAjB,gBAAiB,CADjB,eAAgB,CAHhB,YAKJ,CAEA,gBAEI,eAAgB,CADhB,gBAEJ,CAEA,iBAEI,kBAAmB,CADnB,YAAa,CAEb,sBACJ,CAEA,mBAGI,kBAAmB,CADnB,mBAAoB,CAEpB,gBAAkB,CAHlB,iBAIJ,CAEA,4BAMI,yBAA2B,CAJ3B,UAAW,CADX,aAAc,CAGd,UAAW,CADX,qBAAsB,CAItB,uBAAwB,CAFxB,SAGJ,CAEA,yBACI,gBACI,gBACJ,CACJ","file":"index.css","sourcesContent":["/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n\n /* Colours */\n --color-primary: var(--ghost-accent-color, #3eb0ef);\n --color-base: #131313;\n --color-border: #ddd;\n --color-bg: #f5f5f5;\n --color-success: #80b912;\n --color-error: #f05230;\n\n /* Fonts */\n --font-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n --font-serif: Georgia, Times, serif;\n --font-mono: Menlo, Courier, monospace;\n --font-light: 100;\n --font-normal: 400;\n --font-bold: 700;\n --font-heavy: 800;\n\n /* Breakpoints */\n --xlarge: 1680px;\n --large: 1280px;\n --medium: 980px;\n --small: 740px;\n --xsmall: 480px;\n\n /* Sizes */\n --height: 4rem;\n --margin: 2rem;\n --radius: 0.5rem;\n\n}\n","/* Reset\n/* ---------------------------------------------------------- */\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-size: 62.5%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n min-height: 100vh;\n margin: 0;\n padding: 0;\n color: #464646;\n font-family: var(--font-sans-serif);\n font-size: 1.5rem;\n line-height: 1.6em;\n font-weight: 400;\n font-style: normal;\n background: #fff;\n scroll-behavior: smooth;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n\np,\nul,\nol,\nli,\ndl,\ndd,\nhr,\npre,\nform,\ntable,\nvideo,\nfigure,\nfigcaption,\nblockquote {\n margin: 0;\n padding: 0;\n}\n\nul[class],\nol[class] {\n padding: 0;\n list-style: none;\n}\n\nimg {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n font: inherit;\n -webkit-appearance: none;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\nlabel {\n display: block;\n font-size: 0.9em;\n font-weight: 700;\n}\n\nhr {\n position: relative;\n display: block;\n width: 100%;\n height: 1px;\n border: 0;\n border-top: 1px solid currentcolor;\n opacity: 0.2;\n}\n\n::selection {\n text-shadow: none;\n background: #cbeafb;\n}\n\nmark {\n background-color: #fdffb6;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\n\nul:not([class]) li + li {\n margin-top: 0.6em;\n}\n\na:not([class]) {\n color: var(--color-primary);\n text-decoration-skip-ink: auto;\n}\n\na[class] {\n color: inherit;\n text-decoration: none;\n transition: 0.4s ease;\n}\n\na[class]:hover {\n transition: 0.2s ease;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 0;\n line-height: 1.15em;\n font-weight: 700;\n}\n\nh1 {\n font-size: 4.6rem;\n letter-spacing: -0.5px;\n}\n@media (max-width: 500px) {\n h1 {\n font-size: 2.7rem;\n }\n}\n\nh2 {\n font-size: 3.6rem;\n}\n@media (max-width: 500px) {\n h2 {\n font-size: 2.2rem;\n }\n}\n\nh3 {\n font-size: 3.2rem;\n}\n@media (max-width: 500px) {\n h3 {\n font-size: 1.8rem;\n }\n}\n\nh4 {\n font-size: 2.6rem;\n}\n\nh5 {\n font-size: 2.4rem;\n}\n\nh6 {\n font-size: 2.2rem;\n}\n\n/* Remove all animations and transitions for people that prefer not to see them */\n@media (prefers-reduced-motion: reduce) {\n * {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n}\n","/* Forms\n/* ---------------------------------------------------------- */\n\n.gh-input,\n.gh-textarea {\n background: var(--color-bg);\n border-radius: var(--radius);\n border: none;\n border: solid 1px var(--color-border);\n color: inherit;\n display: block;\n outline: 0;\n padding: 0 0.6em;\n text-decoration: none;\n width: 100%;\n}\n\n.gh-input:focus {\n border-color: var(--color-primary);\n}\n\n.gh-select {\n height: var(--height);\n padding-right: var(--height);\n text-overflow: ellipsis;\n}\n\n.gh-select option {\n color: var(--color-primary);\n background: var(--color-bg);\n}\n\n.gh-select:focus::-ms-value {\n background-color: transparent;\n}\n\n.gh-select::-ms-expand {\n display: none;\n}\n\n.gh-input,\n.gh-select {\n height: var(--height);\n}\n\n.gh-textarea {\n padding: 0.3em 0.6em;\n resize: vertical;\n}\n\n.gh-check {\n display: block;\n margin-right: -2em;\n opacity: 0;\n width: 1em;\n z-index: -1;\n}\n\n.gh-check + label,\n.gh-check + label {\n display: flex;\n align-items: center;\n color: var(--color-base);\n cursor: pointer;\n font-size: 1em;\n font-weight: var(--font-normal);\n padding-left: calc((var(--height) * 0.6) + 0.75em);\n padding-right: 2rem;\n position: relative;\n user-select: none;\n}\n\n.gh-check + label:before,\n.gh-check + label:before {\n background: var(--color-bg);\n border-radius: var(--radius);\n border: solid 1px var(--color-border);\n content: '';\n display: inline-block;\n height: calc(var(--height) * 0.6);\n line-height: calc(var(--height) * 0.56);\n text-align: center;\n width: calc(var(--height) * 0.6);\n margin-right: 1rem;\n}\n\n.gh-check:checked + label:before,\n.gh-check:checked + label:before {\n background: var(--color-primary);\n border-color: var(--color-primary);\n color: var(--color-bg);\n content: '✓';\n}\n\n.gh-check:focus + label:before,\n.gh-check:focus + label:before {\n border-color: var(--color-primary);\n box-shadow: 0 0 0 1px var(--color-primary);\n}\n\n\n.gh-check + label:before {\n border-radius: var(--radius);\n}\n\n.gh-check + label:before {\n border-radius: 100%;\n}\n","/* Buttons\n/* ---------------------------------------------------------- */\n\n.gh-button {\n display: inline-block;\n min-width: 75px;\n height: var(--height);\n padding: 0 2rem;\n border: 0;\n border-radius: var(--radius);\n cursor: pointer;\n font-family: var(--font-sans-serif);\n font-size: 1.4rem;\n font-weight: var(--font-normal);\n line-height: var(--height);\n text-align: center;\n text-decoration: none;\n white-space: nowrap;\n appearance: none;\n transition: 0.4s ease;\n}\n\n.gh-button.gh-button-fit {\n width: 100%;\n}\n\n.gh-button.gh-button-small {\n height: calc(var(--height) * 0.9);\n line-height: calc(var(--height) * 0.9);\n padding: 0 1.5rem;\n font-size: 1.2rem;\n}\n\n.gh-button.gh-button-large {\n height: calc(var(--height) * 1.2);\n line-height: calc(var(--height) * 1.2);\n padding: 0 2.5rem;\n font-size: 1.7rem;\n}\n\n.gh-button.gh-button-disabled,\n.gh-button:disabled {\n pointer-events: none;\n opacity: 0.4;\n}\n\n.gh-button {\n color: inherit;\n background-color: transparent;\n box-shadow: inset 0 0 0 2px currentColor\n}\n\n.gh-button:hover {\n text-decoration: none;\n color: var(--color-primary) !important;\n box-shadow: inset 0 0 0 2px var(--color-primary);\n transition: 0.2s ease;\n}\n\n.gh-button.gh-button-primary {\n color: #fff !important;\n background-color: var(--color-primary);\n box-shadow: none;\n}\n\n.gh-button.gh-button-primary:hover {\n background-color: var(--color-primary);\n}\n","/* Global Header\n/* ---------------------------------------------------------- */\n\n.gh-head {\n padding: 3vmin 4vmin;\n font-size: 1.6rem;\n line-height: 1.3em;\n background: inherit;\n}\n\n.gh-head a {\n color: inherit;\n text-decoration: none;\n}\n\n.gh-head-inner {\n display: grid;\n grid-gap: 40px;\n grid-template-columns: 1fr auto 1fr;\n grid-auto-flow: row dense;\n}\n\n\n/* Brand\n/* ---------------------------------------------------------- */\n\n.gh-head-brand {\n grid-column-start: 2;\n display: flex;\n align-items: center;\n max-width: 200px;\n text-align: center;\n word-break: break-all;\n}\n\n.gh-head-logo {\n display: block;\n padding: 10px 0;\n font-weight: 600;\n font-size: 2.2rem;\n line-height: 1.2em;\n}\n\n.gh-head-logo img {\n max-height: 40px;\n}\n\n\n/* Primary Navigation\n/* ---------------------------------------------------------- */\n\n.gh-head-menu {\n display: flex;\n align-items: center;\n}\n\n.gh-head-menu .nav {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n list-style: none;\n}\n\n.gh-head-menu .nav li {\n margin: 0 1.5vmin 0 0;\n padding: 0;\n}\n\n.gh-head-menu .nav a {\n display: inline-block;\n padding: 5px 0;\n}\n\n.gh-head-menu .nav-current a {\n box-shadow: 0 -1px 0 0 currentcolor inset;\n}\n\n\n/* Secondary Navigation\n/* ---------------------------------------------------------- */\n\n.gh-head-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n list-style: none;\n text-align: right;\n}\n\n.gh-head-actions-list {\n display: inline-flex;\n gap: 10px;\n flex-wrap: wrap;\n justify-content: flex-end;\n align-items: center;\n}\n\n.gh-head-actions-list a:not([class]) {\n display: inline-block;\n margin: 0 0 0 1.5vmin;\n padding: 5px 0;\n}\n\n\n/* Mobile Menu Trigger\n/* ---------------------------------------------------------- */\n\n.gh-burger {\n position: relative;\n display: none;\n cursor: pointer;\n}\n\n.gh-burger-box {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 33px;\n height: 33px;\n}\n\n.gh-burger-inner {\n width: 100%;\n height: 100%;\n}\n\n.gh-burger-box::before {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n bottom: 0;\n margin: auto;\n content: '';\n width: 100%;\n height: 1px;\n background: currentcolor;\n transition: transform 300ms cubic-bezier(.2,.6,.3,1), width 300ms cubic-bezier(.2,.6,.3,1);\n will-change: transform, width;\n}\n\n.gh-burger-inner::before,\n.gh-burger-inner::after {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n bottom: 0;\n margin: auto;\n content: '';\n width: 100%;\n height: 1px;\n background: currentcolor;\n transition: transform 250ms cubic-bezier(.2,.7,.3,1), width 250ms cubic-bezier(.2,.7,.3,1);\n will-change: transform, width;\n}\n\n.gh-burger-inner::before {\n transform: translatey(-6px);\n}\n.gh-burger-inner::after {\n transform: translatey(6px);\n}\n\nbody:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::before {\n transform: translatey(-8px);\n}\nbody:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {\n transform: translatey(8px);\n}\n\n.gh-head-open .gh-burger-box::before {\n width: 0;\n transform: translatex(19px);\n transition: transform 200ms cubic-bezier(.2,.7,.3,1), width 200ms cubic-bezier(.2,.7,.3,1);\n}\n\n.gh-head-open .gh-burger-inner::before {\n width: 26px;\n transform: translatex(6px) rotate(135deg);\n}\n\n.gh-head-open .gh-burger-inner::after {\n width: 26px;\n transform: translatex(6px) rotate(-135deg);\n}\n\n\n/* Layout Variants\n/* ---------------------------------------------------------- */\n\n.gh-head-brandnavactions .gh-head-brand {\n grid-column-start: 1;\n}\n\n.gh-head-brandnav .gh-container {\n grid-gap: 0;\n grid-template-columns: auto max-content max-content;\n}\n.gh-head-brandnav .gh-head-brand {\n grid-column-start: 1;\n}\n.gh-head-brandnav .gh-head-menu {\n margin-left: 40px;\n}\n.gh-head-brandnav .gh-head-menu .nav li {\n margin: 0 0 0 1.5vmin;\n padding: 0;\n}\n\n/* Center Stacked */\n.gh-head-stacked .gh-container {\n grid-template-columns: 1fr;\n grid-gap: 2vmin;\n}\n.gh-head-stacked .gh-head-brand {\n grid-column-start: 1;\n width: 100%;\n max-width: none;\n display: flex;\n justify-content: center;\n text-align: center;\n}\n.gh-head-stacked .gh-head-menu,\n.gh-head-stacked .gh-head-actions,\n.gh-head-stacked .gh-head-actions-list {\n justify-content: center;\n}\n.gh-head-stacked .gh-head-actions a:first-child svg {\n margin-left: 0;\n}\n\n\n/* Mobile Menu\n/* ---------------------------------------------------------- */\n/* IDs needed to ensure sufficient specificity */\n\n@media (max-width: 900px) {\n .gh-burger {\n display: inline-block;\n }\n #gh-head {\n transition: all 0.4s ease-out;\n overflow: hidden;\n }\n #gh-head .gh-head-inner {\n height: 100%;\n grid-template-columns: 1fr;\n }\n #gh-head .gh-head-brand {\n position: relative;\n z-index: 10;\n grid-column-start: auto;\n max-width: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n user-select: none;\n }\n #gh-head .gh-head-logo {\n font-size: 2.2rem;\n }\n #gh-head .gh-head-logo img {\n max-height: 40px;\n }\n #gh-head .gh-head-menu {\n align-self: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n margin: 0 0 10vh 0;\n font-weight: 300;\n font-size: 3.6rem;\n line-height: 1.1em;\n }\n #gh-head .gh-head-menu .nav li {\n margin: 5px 0;\n }\n #gh-head .gh-head-menu .nav a {\n padding: 8px 0;\n }\n #gh-head .gh-head-menu .nav {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n #gh-head .gh-head-actions {\n padding: 20px 0;\n justify-content: center;\n text-align: left;\n }\n #gh-head .gh-head-actions a {\n margin: 0 10px;\n }\n /* Hide collapsed content */\n #gh-head .gh-head-actions,\n #gh-head .gh-head-menu {\n display: none;\n }\n /* Open the menu */\n .gh-head-open {\n overflow: hidden;\n height: 100vh;\n }\n .gh-head-open #gh-head {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 900;\n overflow-y: scroll;\n }\n .gh-head-open #gh-head .gh-head-inner {\n grid-template-rows: auto 1fr auto;\n }\n .gh-head-open #gh-head .gh-head-actions,\n .gh-head-open #gh-head .gh-head-menu {\n display: flex;\n }\n}\n\n@media (max-width: 600px) {\n #gh-head .gh-head-menu {\n font-size: 6vmin;\n }\n}\n","\n\n/* Content grid\n/* ---------------------------------------------------------- */\n\n.gh-canvas,\n.kg-width-full.kg-content-wide {\n --gap: 4vw;\n --main: min(var(--content-width, 720px), 100% - var(--gap) * 2);\n --wide: minmax(0, calc((var(--container-width, 1200px) - var(--content-width, 720px)) / 2));\n --full: minmax(var(--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-start / main-end;\n}\n\n.kg-width-wide,\n.kg-content-wide > div {\n grid-column: wide-start / wide-end;\n}\n\n.kg-width-full {\n grid-column: full-start / full-end;\n}\n\n.kg-width-full img {\n width: 100%;\n}\n\n\n/* Content & Typography\n/* ---------------------------------------------------------- */\n\n.gh-content > * + * {\n margin-top: 4vmin;\n}\n\n.gh-content [id]:not(:first-child) {\n margin: 1.5em 0 0;\n}\n\n.gh-content > [id] + * {\n margin-top: 1.5rem;\n}\n\n.gh-content [id] + .kg-card,\n.gh-content blockquote + .kg-card {\n margin-top: 6vmin;\n}\n\n.gh-canvas > blockquote,\n.gh-canvas > ol,\n.gh-canvas > ul,\n.gh-canvas > dl,\n.gh-canvas > p {\n font-family: var(--font-serif);\n font-weight: 400;\n font-size: 2rem;\n line-height: 1.6em;\n}\n\n.gh-content > ul,\n.gh-content > ol,\n.gh-content > dl {\n padding-left: 1.9em;\n}\n\n.gh-content hr {\n margin-top: 6vmin;\n}\n\n.gh-content hr + * {\n margin-top: 6vmin !important;\n}\n\n.gh-content blockquote {\n position: relative;\n font-style: italic;\n}\n\n.gh-content blockquote::before {\n content: \"\";\n position: absolute;\n left: -1.5em;\n top: 0;\n bottom: 0;\n width: 0.3rem;\n background: var(--color-primary);\n}\n\n@media (max-width: 650px) {\n .gh-canvas blockquote,\n .gh-canvas ol,\n .gh-canvas ul,\n .gh-canvas dl,\n .gh-canvas p {\n font-size: 1.8rem;\n }\n\n .gh-content blockquote::before {\n left: -4vmin;\n }\n}\n\n\n/* Cards\n/* ---------------------------------------------------------- */\n\n.gh-content :not(.kg-card):not([id]) + .kg-card {\n margin-top: 6vmin;\n}\n\n.gh-content .kg-card + :not(.kg-card) {\n margin-top: 6vmin;\n}\n\nfigcaption {\n padding: 1.5rem 1.5rem 0;\n text-align: center;\n color: rgba(0,0,0,0.5);\n font-weight: 600;\n font-size: 1.3rem;\n line-height: 1.4em;\n}\n\nfigcaption strong {\n color: rgba(0,0,0,0.8);\n}\n\n.gh-canvas :not(pre) code {\n vertical-align: middle;\n padding: 0.15em 0.4em 0.15em;\n border: #e1eaef 1px solid;\n font-weight: 400 !important;\n font-size: 0.9em;\n line-height: 1em;\n color: #dc0050;\n background: #f0f6f9;\n border-radius: 0.25em;\n}\n\n.gh-canvas > pre {\n overflow: scroll;\n padding: 16px 20px;\n background: rgba(255,255,255,0.8);\n border-radius: 5px;\n box-shadow: 0 2px 6px -2px rgba(0,0,0,.1), 0 0 1px rgba(0,0,0,.4);\n}\n\n.kg-embed-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n/* Default to 16 / 9 aspect ratio for YouTube & Vimeo embeds */\n.kg-embed-card > :where(iframe[src*=\"youtube.com\"],iframe[src*=\"vimeo.com\"]) {\n width: 100%;\n height: auto;\n aspect-ratio: 16 / 9;\n}\n\n.kg-image-card img {\n margin: auto;\n}\n\n\n/* Card captions\n/* ---------------------------------------------------------- */\n\n.kg-width-full.kg-card-hascaption {\n display: grid;\n grid-template-columns: inherit;\n}\n\n.kg-width-wide.kg-card-hascaption img {\n grid-column: wide-start / wide-end;\n}\n.kg-width-full.kg-card-hascaption img {\n grid-column: 1 / -1;\n}\n\n.kg-width-full.kg-card-hascaption figcaption {\n grid-column: main-start / main-end;\n}\n\n\n/* Tables\n/* ---------------------------------------------------------- */\n\n.gh-content table {\n border-collapse: collapse;\n width: 100%;\n}\n\n.gh-content th {\n padding: 0.5em 0.8em;\n text-align: left;\n font-size: .75em;\n text-transform: uppercase;\n}\n\n.gh-content td {\n padding: 0.4em 0.7em;\n}\n\n.gh-content tbody tr:nth-child(2n + 1) {\n background-color: rgba(0,0,0,0.1);\n padding: 1px;\n}\n\n.gh-content tbody tr:nth-child(2n + 2) td:last-child {\n box-shadow:\n inset 1px 0 rgba(0,0,0,0.1),\n inset -1px 0 rgba(0,0,0,0.1);\n}\n\n.gh-content tbody tr:nth-child(2n + 2) td {\n box-shadow: inset 1px 0 rgba(0,0,0,0.1);\n}\n\n.gh-content tbody tr:last-child {\n border-bottom: 1px solid rgba(0,0,0,.1);\n}\n","/* Read More\n/* ---------------------------------------------------------- */\n\n.gh-readmore {\n padding: 8vmin 4vmin;\n font-size: 2.6rem;\n}\n\n.gh-readmore-inner {\n display: grid;\n grid-gap: 8vmin;\n grid-template-columns: 1fr 1fr;\n}\n\n.gh-readmore-prev {\n justify-content: flex-end;\n text-align: right;\n}\n\n.gh-readmore a {\n display: flex;\n color: currentColor;\n text-decoration: none;\n}\n\n.gh-readmore h4 {\n width: 100%;\n font-size: inherit;\n}\n\n.gh-readmore svg {\n display: inline-block;\n vertical-align: middle;\n height: 1em;\n margin: 0.15em 0 0;\n}\n\n.gh-readmore svg + h4,\n.gh-readmore h4 + svg {\n margin-left: 2vmin;\n}\n\n@media (max-width: 700px) {\n .gh-readmore {\n font-size: 1.6rem;\n }\n .gh-readmore svg {\n margin: 0.1em 0 0;\n }\n}\n","/* Members Auth Template\n/* ---------------------------------------------------------- */\n\n.gh-auth-form {\n width: 100%;\n max-width: 600px;\n margin: 0 auto 10vmin;\n text-align: center;\n}\n\n.gh-auth-title {\n margin: 0 0 0.1em;\n font-size: 4.2rem;\n}\n\n.gh-auth-form p {\n margin: 10px 0 4vmin 0;\n font-size: 1.7rem;\n color: rgba(0,0,0,0.6)\n}\n\n.gh-auth-form p small {\n display: inline-block;\n margin: 15px 0 0 0;\n font-size: 1.4rem;\n}\n\n.gh-auth-box {\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 460px;\n margin: 0 auto;\n}\n\n.gh-auth-box .gh-button {\n margin-left: 10px;\n}\n\n@media (max-width: 600px) {\n .gh-auth-box {\n flex-direction: column;\n max-width: 400px;\n }\n .gh-auth-box .gh-button {\n width: 100%;\n margin: 15px 0 0 0;\n }\n}\n\n/* Members Forms\n/* ---------------------------------------------------------- */\n\nform[data-members-form] .gh-button-loader,\nform[data-members-form] .message-success,\nform[data-members-form] .message-error {\n display: none;\n}\n\n.gh-button-content {\n min-width: 100px;\n}\n\n.message-success svg,\n.message-error svg {\n position: relative;\n top: -1px;\n margin-right: 5px;\n height: 15px;\n width: 15px;\n}\n.message-success svg {\n fill: #fff;\n}\n.message-error svg {\n fill: var(--color-error);\n}\n\nform[data-members-form].success .message-success,\nform[data-members-form].error .message-error {\n position: fixed;\n top: 20px;\n left: 4vmin;\n right: 4vmin;\n z-index: 9999;\n max-width: calc(1400px - 8vmin);\n margin: 0 auto;\n padding: 10px 0;\n color: #fff;\n font-size: 1.4rem;\n line-height: 1.5em;\n font-weight: 500;\n text-align: center;\n background: var(--color-base);\n border-radius: var(--radius);\n}\nform[data-members-form].success .message-success {\n background: var(--color-success);\n}\nform[data-members-form].error .message-error {\n color: var(--color-error);\n background: #fff;\n box-shadow: var(--color-error) 0 0 0 1px;\n}\n\nform[data-members-form] .gh-button {\n position: relative;\n min-width: 120px;\n}\n\n/*-- Loading --*/\n\n/* Hide button text */\nform[data-members-form].loading .gh-button-content {\n visibility: hidden;\n}\n\n/* Show loading spinner */\nform[data-members-form].loading .gh-button-loader {\n display: inline-block;\n position: absolute;\n left: 50%;\n bottom: -30%;\n margin: 0 0 0 -19px;\n transform: scale(0.6);\n}\n\n.gh-button-loader svg path,\n.gh-button-loader svg rect{\n fill: #fff;\n}\n\n/*-- Show success message on success --*/\nform[data-members-form].success .message-success {\n display: block;\n}\n\n/*-- Show error message on error --*/\nform[data-members-form].error .message-error {\n display: block;\n}\n","/* Error Templates\n/* ---------------------------------------------------------- */\n\n.gh-error {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-bottom: 2vmin;\n}\n\n.gh-error-content {\n flex: 1 0 auto;\n text-align: center;\n}\n\n.gh-error-code {\n margin: 0;\n font-size: 14vmin;\n}\n\n.gh-error-description {\n max-width: 600px;\n margin: 0 auto;\n padding: 0 2rem;\n font-size: 4vmin;\n line-height: 1.2em;\n font-weight: 300;\n opacity: 0.6;\n}\n\n.gh-error-link {\n display: block;\n margin-top: 4vmin;\n font-size: 1.6rem;\n}\n\n.gh-error-stack {\n max-width: 600px;\n margin: 0 auto 0;\n padding: 8vmin 0;\n text-align: left;\n}\n\n.gh-error-stack-list {\n margin: 4vmin 0 0;\n font-size: 1.4rem;\n}\n\n.gh-error-stack-list > li {\n padding: 2rem 0;\n margin: 0;\n border-top: rgba(0,0,0,0.1) 1px solid;\n}\n\n.gh-error-stack-function {\n margin: 0 0 0.5em;\n font-size: 1.8rem;\n color: red;\n}\n","/* Global Footer\n/* ---------------------------------------------------------- */\n\n.gh-foot {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8vmin 4vmin 4vmin;\n}\n\n.gh-foot .gh-container {\n width: auto;\n}\n\n.gh-foot a {\n color: inherit;\n}\n\n.gh-foot-menu {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.gh-foot-menu .nav {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n list-style: none;\n font-size: 1.8rem;\n}\n\n.gh-foot-menu .nav li {\n margin: 0 1.5vmin;\n padding: 0;\n}\n\n.gh-foot-menu .nav a {\n display: inline-block;\n padding: 3px 0;\n text-decoration: none;\n box-shadow: 0 -1px 0 0 currentcolor inset;\n}\n\n.gh-foot-meta {\n margin: 2rem 0;\n font-size: 1.5rem;\n text-align: center;\n opacity: 0.75;\n}\n\n@media (max-width: 700px) {\n .gh-foot-menu .nav {\n font-size: 1.6rem;\n }\n}\n","a.gh-powered,\na.gh-powered:hover {\n display: inline-flex;\n align-items: center;\n padding: 6px 9px 6px 6px;\n border: none;\n font-size: 12px;\n line-height: 12px;\n letter-spacing: -0.3px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n font-weight: 600;\n text-decoration: none;\n color: #383838;\n background: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.08);\n cursor: pointer;\n}\n\na.gh-powered svg {\n height: 16px;\n width: 16px;\n margin: 0 6px 0 0;\n}\n","\n.gh-pagination .pagination {\n display: flex;\n justify-content: space-between;\n margin-block: 4vmin;\n}",".gh-post-comments {\n margin-block: 8vmin 4vmin;\n}","/*\n\nThis is a development CSS file that is compiled to a minified\nproduction stylesheet in assets/built/screen.css using: npm run dev\n\n*/\n\n/* Lib - Local component imports\n/* ---------------------------------------------------------- */\n\n/* Base components */\n@import \"vars.css\";\n@import \"components/global.css\";\n@import \"components/forms.css\";\n@import \"components/buttons.css\";\n\n/* Ghost components */\n@import \"ghost/header.css\";\n@import \"ghost/content.css\";\n@import \"ghost/readmore.css\";\n@import \"ghost/members.css\";\n@import \"ghost/errors.css\";\n@import \"ghost/footer.css\";\n@import \"ghost/badge.css\";\n@import \"ghost/pagination.css\";\n@import \"ghost/comments.css\";\n\n\n\n/* Main - Your styles here! Edit below\n/* ---------------------------------------------------------- */\n\nhtml,\n.gh-viewport {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n background: #ffffff;\n}\n\n.gh-main {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n}\n\n.gh-page {\n padding: 0 4vmin;\n}\n\n.gh-article {\n padding: 8vmin 0;\n}\n\n.gh-postfeed {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(350px, 100%), 1fr));\n gap: 4.8vmin 4vmin;\n padding: 8vmin 0;\n}\n\n.gh-postfeed > *:first-child {\n grid-column: 1 / -1;\n}\n\n.gh-container {\n width: 100%;\n max-width: 1200px;\n margin: 0 auto;\n}\n\n.gh-head-actions a:not(.gh-button) {\n display: inline-flex;\n align-items: center;\n margin: 0;\n padding: 10px;\n}\n\n.gh-head-actions a svg {\n height: 1.8rem;\n fill: currentcolor;\n}\n\n.gh-head-actions a:first-child svg {\n margin-left: 20px;\n}\n\n.gh-head-actions a:last-child svg {\n height: 2rem;\n}\n\n/* Index\n/* ---------------------------------------------------------- */\n\n/* .gh-card:not(:first-child) {\n margin: 8vmin auto 0;\n} */\n\n.gh-card-link {\n display: flex;\n flex-direction: column;\n}\n\n.gh-card-image {\n width: 100%;\n /* max-height: 700px; */\n object-fit: cover;\n margin-bottom: 4vmin;\n aspect-ratio: 1 / 1;\n}\n\n.gh-card-image:first-of-type {\n aspect-ratio: 16 / 9;\n}\n\n\n.gh-card-meta {\n display: block;\n margin: 0 0 1rem;\n font-size: 1.4rem;\n line-height: 1.2em;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n opacity: 0.8;\n}\n\n.gh-card-content {\n max-width: 720px;\n margin: 0 auto;\n text-align: center;\n font-size: 1.6rem;\n}\n\n.gh-card-content p {\n margin: 1.2rem 0;\n padding: 0 3vmin;\n}\n\n.gh-card-content > strong {\n display: inline-block;\n padding: 1px 0;\n font-weight: 500;\n box-shadow: 0 -1px 0 0 inset currentColor;\n opacity: 0.75;\n}\n\n\n/* Page\n/* ---------------------------------------------------------- */\n\n.gh-page-head {\n margin: 0 auto;\n padding: 8vmin 0 4vmin;\n text-align: center;\n}\n\n.gh-page-image {\n margin: 4vmin 0 0 0;\n}\n\n.gh-page-head > p {\n max-width: 720px;\n margin: 0.3em auto 0;\n padding: 0 6vmin;\n font-size: 1.3em;\n line-height: 1.4em;\n opacity: 0.5;\n}\n\n@media (max-width: 700px) {\n .gh-page-head > p {\n font-size: 1.6rem;\n }\n}\n\n\n/* Post\n/* ---------------------------------------------------------- */\n\n.gh-header {\n padding: 0 0 8vmin 0;\n text-align: center;\n}\n\n.gh-post-meta {\n display: block;\n margin: 0 0 1rem;\n font-size: 1.4rem;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n opacity: 0.8;\n}\n\n.gh-excerpt {\n margin: 1rem 0 0 0;\n}\n\n.gh-feature-image {\n grid-column: wide-start / wide-end;\n width: 100%;\n margin: 8vmin 0 0;\n}\n\n.gh-feature-image img {\n margin-inline: auto;\n width: 100%;\n}\n\n.gh-post-footer {\n margin: 2rem 0;\n}\n\n\n/* Author Archive\n/* ---------------------------------------------------------- */\n\n.gh-author-image {\n height: 12vmin;\n width: 12vmin;\n margin: 0 auto 1.5em;\n border-radius: 100%;\n overflow: hidden;\n object-fit: cover;\n}\n\n.gh-author-meta {\n margin: 2vmin 0 0 0;\n font-size: 1.2em;\n}\n\n.gh-author-links {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.gh-author-links a {\n position: relative;\n display: inline-flex;\n align-items: center;\n margin: 0 0.75vmin;\n}\n\n.gh-author-links a + a:before {\n display: block;\n content: \"\";\n margin: 0 1.25vmin 0 0;\n height: 1em;\n width: 1px;\n background: rgba(0,0,0,0.3);\n transform: rotate(20deg);\n}\n\n@media (max-width: 700px) {\n .gh-author-meta {\n font-size: 1.6rem;\n }\n}\n"]} \ No newline at end of file diff --git a/assets/built/index.js b/assets/built/index.js deleted file mode 100644 index 741a0ef8..00000000 --- a/assets/built/index.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){e&&!e.getElementById("livereloadscript")&&((t=e.createElement("script")).async=1,t.src="//"+(self.location.host||"localhost").split(":")[0]+":35730/livereload.js?snipver=1",t.id="livereloadscript",e.getElementsByTagName("head")[0].appendChild(t))}(self.document),function(){"use strict";var e;let t=null===(e=document.querySelector('link[rel="next"]'))||void 0===e?void 0:e.getAttribute("href");document.querySelector(".gh-burger").addEventListener("click",(function(){document.body.classList.toggle("gh-head-open")})),function(){if(!t)return;new IntersectionObserver(((e,r)=>{try{e.forEach((e=>{e.isIntersecting&&t&&async function(e){try{var t;const r=await fetch(e);if(!r.ok)throw new Error("Failed to fetch page");const o=await r.text(),n=(new DOMParser).parseFromString(o,"text/html");return{posts:n.querySelectorAll(".post"),nextLink:null===(t=n.querySelector('link[rel="next"]'))||void 0===t?void 0:t.getAttribute("href")}}catch(e){throw new Error(e)}}(t).then((e=>{let{posts:o,nextLink:n}=e;o.forEach((e=>{document.querySelector(".gh-postfeed").append(e)})),n?(t=n,r.observe(document.querySelector(".post:last-of-type"))):r.disconnect()}))}))}catch(e){console.log(e)}}),{rootMargin:"150px"}).observe(document.querySelector(".post:last-of-type"))}()}(); -//# sourceMappingURL=index.js.map diff --git a/assets/built/index.js.map b/assets/built/index.js.map deleted file mode 100644 index a14b8299..00000000 --- a/assets/built/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../js/infiniteScroll.js","../js/menuOpen.js","../js/index.js"],"sourcesContent":["/*\nThis script continously loads post as the user scrolls the page. It uses the IntersectionObserver API to detect when the last post is in view. When the last post is in view, it fetches the next page and appends the posts to the page. It then checks if there is a next page and if there is, it continues to observe the last post. If there is no next page, it disconnects the observer. \n\nImportantly, for this script to work, it requires that each card have the `post` class and that the card container have the `gh-postfeed` class\n*/\n\nlet link = document.querySelector('link[rel=\"next\"]')?.getAttribute('href');\n\n// Fetch and parse next page\nasync function getNextPage(url) {\n try {\n const res = await fetch(url);\n \n if (!res.ok) {\n throw new Error('Failed to fetch page')\n }\n \n const nextPageHtml = await res.text();\n const parser = new DOMParser();\n const parsed = parser.parseFromString(nextPageHtml, 'text/html');\n const posts = parsed.querySelectorAll('.post');\n const nextLink = parsed.querySelector('link[rel=\"next\"]')?.getAttribute('href');\n \n return {posts, nextLink}\n\n } catch (error) {\n throw new Error(error)\n }\n}\n\nexport default function infiniteScroll() {\n \n if (!link) { return; }\n\n const options = {\n // When the last card is within a 150px of the viewport, fetch the next page. This provides a smoother transition between pages \n rootMargin: '150px',\n }\n\n const callback = (entries, observer) => {\n try {\n entries.forEach(entry => {\n \n if (entry.isIntersecting) {\n \n if (link) {\n getNextPage(link).then(({posts, nextLink}) => {\n posts.forEach(post => {\n document.querySelector('.gh-postfeed').append(post)\n })\n\n if (nextLink) {\n link = nextLink;\n observer.observe(document.querySelector('.post:last-of-type'))\n } else {\n observer.disconnect()\n }\n })\n }\n }\n })\n } catch (error) {\n console.log(error)\n }\n }\n\n let observer = new IntersectionObserver(callback, options);\n\n observer.observe(document.querySelector('.post:last-of-type'))\n\n}","// Toggle the menu open and close when on mobile\nexport default function menuOpen() {\n const burgerButton = document.querySelector('.gh-burger');\n burgerButton.addEventListener('click', function () {\n document.body.classList.toggle('gh-head-open');\n });\n}","// JavaScript files are compiled and minified during the build process to the assets/built folder. See available scripts in the package.json file.\n\n// Import CSS\nimport \"../css/index.css\";\n\n// Import JS\nimport menuOpen from \"./menuOpen\";\nimport infiniteScroll from \"./infiniteScroll\";\n\n\n// Call the menu and infinite scroll functions\nmenuOpen();\ninfiniteScroll();"],"names":["link","_document$querySelect","document","querySelector","getAttribute","addEventListener","body","classList","toggle","IntersectionObserver","callback","entries","observer","forEach","entry","isIntersecting","async","url","_parsed$querySelector","res","fetch","ok","Error","nextPageHtml","text","parsed","DOMParser","parseFromString","posts","querySelectorAll","nextLink","error","getNextPage","then","_ref","post","append","observe","disconnect","console","log","rootMargin","infiniteScroll"],"mappings":"oTAMA,IAAIA,EAAiD,QAA7CC,EAAGC,SAASC,cAAc,2BAAvBF,IAA0CA,OAA1CA,EAAAA,EAA4CG,aAAa,QCJ3CF,SAASC,cAAc,cAC/BE,iBAAiB,SAAS,WACnCH,SAASI,KAAKC,UAAUC,OAAO,eACnC,IDyBW,WAEX,IAAKR,EAAQ,OAkCE,IAAIS,sBA3BFC,CAACC,EAASC,KACvB,IACID,EAAQE,SAAQC,IAERA,EAAMC,gBAEFf,GApCxBgB,eAA2BC,GACvB,IAAI,IAAAC,EACA,MAAMC,QAAYC,MAAMH,GAExB,IAAKE,EAAIE,GACL,MAAM,IAAIC,MAAM,wBAGpB,MAAMC,QAAqBJ,EAAIK,OAEzBC,GADS,IAAIC,WACGC,gBAAgBJ,EAAc,aAIpD,MAAO,CAACK,MAHMH,EAAOI,iBAAiB,SAGvBC,SAF0C,QAA3CZ,EAAGO,EAAOtB,cAAc,2BAArBe,IAAwCA,OAAxCA,EAAAA,EAA0Cd,aAAa,QAI3E,CAAC,MAAO2B,GACL,MAAM,IAAIT,MAAMS,EACpB,CACJ,CAkBwBC,CAAYhC,GAAMiC,MAAKC,IAAuB,IAAtBN,MAACA,EAAKE,SAAEA,GAASI,EACrCN,EAAMf,SAAQsB,IACVjC,SAASC,cAAc,gBAAgBiC,OAAOD,EAAK,IAGnDL,GACA9B,EAAO8B,EACPlB,EAASyB,QAAQnC,SAASC,cAAc,wBAExCS,EAAS0B,YACb,GAGZ,GAEP,CAAC,MAAOP,GACLQ,QAAQC,IAAIT,EAChB,IA7BY,CAEbU,WAAY,UAgCNJ,QAAQnC,SAASC,cAAc,sBAE5C,CE1DAuC"} \ No newline at end of file diff --git a/package.json b/package.json index 15c0534c..4afbf68d 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "build": "rollup -c --environment BUILD:production", "zip": "npm run build && bestzip $npm_package_name.zip assets/* partials/* members/* *.hbs package.json", "test": "npx gscan .", - "pretest": "npm run build" + "pretest": "npm run build", + "postinstall": "npm run build" }, "author": { "name": "Ghost Foundation",