[
  {
    "path": ".editorconfig",
    "content": "# http://editorconfig.org\n\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 4\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.hbs]\ninsert_final_newline = false\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".github/workflows/deploy-theme.yml",
    "content": "name: Deploy Theme\non:\n  push:\n    branches:\n      - main\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n      - uses: TryGhost/action-deploy-theme@a0ee1147d15641db25681e54549c4db9a53c2629 # v1.6.6\n        with:\n          api-url: ${{ secrets.GHOST_ADMIN_API_URL }}\n          api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}\n"
  },
  {
    "path": ".github/workflows/test.yml",
    "content": "name: Test\non:\n  pull_request:\n  push:\n    branches:\n      - main\njobs:\n  build:\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        node: [ '22' ]\n    name: Node ${{ matrix.node }}\n    steps:\n      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n      - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6\n        with:\n          node-version: ${{ matrix.node }}\n      - run: yarn\n      - run: gulp build\n      - run: gulp zip\n      - run: yarn test:ci\n"
  },
  {
    "path": ".gitignore",
    "content": "b-cov\n*.seed\n*.log\n*.csv\n*.dat\n*.out\n*.pid\n*.gz\n\npids\nlogs\nresults\n\nnpm-debug.log\nnode_modules\npackage-lock.json\n\n.idea/*\n*.iml\nprojectFilesBackup\n\n.DS_Store\n\ndist/\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright (c) 2013-2026 Ghost Foundation\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Lyra\n\nA paid-members publication for Ghost. Can be used with no code knowledge required.\n\n# Installation instructions\n\n1. [Download this theme](https://github.com/TryGhost/Lyra/archive/main.zip)\n2. Log into Ghost, and go to the `Design` settings area to upload the zip file\n3. Unzip the theme archive on your computer and locate the file called `routes.yaml`\n4. Inside Ghost admin, go to the `Labs` settings area and scroll down until you see the `Custom Routes` section\n5. Upload the `routes.yaml` from this theme\n\nThat's it! You now have a Ghost publication which supports free and paid memberships. If you need help, check out the <a href=\"https://ghost.org/docs/members/\">Ghost members documentation</a> or chat with other Ghost users on <a href=\"https://forum.ghost.org\">Ghost forum</a>.\n\n![Screenshot of a subscribers only post](https://user-images.githubusercontent.com/120485/67228748-1fdd1400-f464-11e9-921f-ecbf5f412ed5.png)\n\n# Upgrade instructions\n\n1. [Download this theme](https://github.com/TryGhost/Lyra/archive/refs/heads/main.zip) and rename the zip for ease of identification in Ghost later.  For example `2022-10-20_Lyra-main.zip`\n2. Log into Ghost, 4. go to the `Labs` settings area and scroll down until you see the `Routes` section\n3. Download your current `routes.yaml` file \n4. Next go to the `Design` settings area and click `Change Theme` at the bottom of the navigation pane\n5. Click the `Upload theme` button in the top right and upload the zip file you downloaded and renamed earlier (for example `2022-10-20_Lyra-main.zip`)\n6. You will now see two instances of Lyra similar to the screenshot below\n    ![Themes list showing two copies of Lyra](docs/TwoLyraInstances.png)\n7. Ensure your new Lyra theme is active (based on the renamed zip from earlier, `lyra (2020-10-31_Lyra-main)` in the screenshot)\n8. Delete the previous Lyra theme (`lyra (Lyra-master)` in the screenshot)\n9Upload `routes.yaml` as required (see _Installation instructions_ above)\n\n# Development\n\nStyles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need [Node](https://nodejs.org/), [Yarn](https://yarnpkg.com/) and [Gulp](https://gulpjs.com) installed globally. After that, from the theme's root directory:\n\n```bash\n# Install\nyarn\n\n# Run build & watch for changes\n$ yarn dev\n```\n\nNow you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically.\n\nThe `zip` Gulp task packages the theme files into `dist/<theme-name>.zip`, which you can then upload to your site.\n\n```bash\nyarn zip\n```\n\n# PostCSS Features Used\n\n- Autoprefixer - Don't worry about writing browser prefixes of any kind, it's all done automatically with support for the latest 2 major versions of every browser.\n- Variables - Simple pure CSS variables\n- [Color Function](https://github.com/postcss/postcss-color-function)\n\n\n# Copyright & License\n\nCopyright (c) 2013-2026 Ghost Foundation - Released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "assets/built/global.css",
    "content": "a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:\"\";content:none}img{height:auto;max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{font-size:2em;margin:.67em 0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{border:none;overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:62.5%;overflow-y:scroll}body,html{overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;color:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;-moz-font-feature-settings:\"liga\" on;font-size:1.6rem;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.6em;text-rendering:optimizeLegibility}::-moz-selection{background:var(--ghost-accent-color,#3eb0ef);color:#fff;text-shadow:none}::selection{background:var(--ghost-accent-color,#3eb0ef);color:#fff;text-shadow:none}hr{border:0;border-top:1px solid #e3e9ed;display:block;height:1px;margin:2.5em 0 3.5em;padding:0;position:relative;width:100%}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{line-height:1.6em;margin:.5em 0;padding-left:.3em}dt{color:#15171a;float:left;font-weight:500;margin:0 20px 0 0;text-align:right;width:120px}dd{margin:0 0 5px;text-align:left}blockquote{border-left:.5em solid #e5eff5;margin:1.5em 0;padding:0 1.6em}blockquote p{font-size:1.2em;font-weight:300;margin:.8em 0}blockquote small{display:inline-block;font-size:.9em;margin:.8em 0 .8em 1.5em;opacity:.8}blockquote small:before{content:\"\\2014 \\00A0\"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:var(--ghost-accent-color,#3eb0ef);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.15;margin-top:0;text-rendering:optimizeLegibility}h1{font-size:5.5rem;font-weight:600;margin:0 0 .5em}@media (max-width:500px){h1{font-size:2.2rem}}h2{font-size:2.2rem;margin:1.5em 0 .5em}@media (max-width:500px){h2{font-size:1.8rem}}h3{font-size:1.8rem;font-weight:500;margin:1.5em 0 .5em}@media (max-width:500px){h3{font-size:1.7rem}}h4{font-size:1.6rem;font-weight:500;margin:1.5em 0 .5em}h5,h6{font-size:1.4rem;font-weight:500;margin:1.5em 0 .5em}\n/*# sourceMappingURL=global.css.map */"
  },
  {
    "path": "assets/built/infinitescroll.js",
    "content": "!function(n,t){var r,o,i,s,l,c,u,d=t.querySelector(\"link[rel=next]\");function v(){if(404===this.status)return n.removeEventListener(\"scroll\",m),void n.removeEventListener(\"resize\",f);this.response.querySelectorAll(\".post-card\").forEach(function(e){r.appendChild(e)});var e=this.response.querySelector(\"link[rel=next]\");e?d.href=e.href:(n.removeEventListener(\"scroll\",m),n.removeEventListener(\"resize\",f)),u=t.documentElement.scrollHeight,s=i=!1}function e(){var e;s||(l+c<=u-o?i=!1:(s=!0,(e=new n.XMLHttpRequest).responseType=\"document\",e.addEventListener(\"load\",v),e.open(\"GET\",d.href),e.send(null)))}function a(){i||n.requestAnimationFrame(e),i=!0}function m(){l=n.scrollY,a()}function f(){c=n.innerHeight,u=t.documentElement.scrollHeight,a()}!d||(r=t.querySelector(\".post-feed\"))&&(s=i=!(o=300),l=n.scrollY,c=n.innerHeight,u=t.documentElement.scrollHeight,n.addEventListener(\"scroll\",m,{passive:!0}),n.addEventListener(\"resize\",f),a())}(window,document);\n//# sourceMappingURL=infinitescroll.js.map"
  },
  {
    "path": "assets/built/jquery.fitvids.js",
    "content": "!function(o){\"use strict\";o.fn.fitVids=function(t){var e,i,d={customSelector:null,ignore:null};return document.getElementById(\"fit-vids-style\")||(e=document.head||document.getElementsByTagName(\"head\")[0],(i=document.createElement(\"div\")).innerHTML='<p>x</p><style id=\"fit-vids-style\">.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}</style>',e.appendChild(i.childNodes[1])),t&&o.extend(d,t),this.each(function(){var t=['iframe[src*=\"player.vimeo.com\"]','iframe[src*=\"youtube.com\"]','iframe[src*=\"youtube-nocookie.com\"]','iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\"object\",\"embed\"];d.customSelector&&t.push(d.customSelector);var r=\".fitvidsignore\";d.ignore&&(r=r+\", \"+d.ignore);var e=o(this).find(t.join(\",\"));(e=(e=e.not(\"object object\")).not(r)).each(function(){var t,e,i=o(this);0<i.parents(r).length||\"embed\"===this.tagName.toLowerCase()&&i.parent(\"object\").length||i.parent(\".fluid-width-video-wrapper\").length||(i.css(\"height\")||i.css(\"width\")||!isNaN(i.attr(\"height\"))&&!isNaN(i.attr(\"width\"))||(i.attr(\"height\",9),i.attr(\"width\",16)),t=(\"object\"===this.tagName.toLowerCase()||i.attr(\"height\")&&!isNaN(parseInt(i.attr(\"height\"),10))?parseInt(i.attr(\"height\"),10):i.height())/(isNaN(parseInt(i.attr(\"width\"),10))?i.width():parseInt(i.attr(\"width\"),10)),i.attr(\"name\")||(e=\"fitvid\"+o.fn.fitVids._count,i.attr(\"name\",e),o.fn.fitVids._count++),i.wrap('<div class=\"fluid-width-video-container\"><div class=\"fluid-width-video-wrapper\"></div></div>').parent(\".fluid-width-video-wrapper\").css(\"padding-top\",100*t+\"%\"),i.removeAttr(\"height\").removeAttr(\"width\"))})})},o.fn.fitVids._count=0}(window.jQuery||window.Zepto);\n//# sourceMappingURL=jquery.fitvids.js.map"
  },
  {
    "path": "assets/built/screen.css",
    "content": "a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:\"\";content:none}img{height:auto;max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{font-size:2em;margin:.67em 0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{border:none;overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-tap-highlight-color:rgba(0,0,0,0);font-size:62.5%;overflow-y:scroll}body,html{overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;-moz-font-feature-settings:\"liga\" on;font-size:1.6rem;font-style:normal;font-weight:400;letter-spacing:0;line-height:1.6em;text-rendering:optimizeLegibility}::-moz-selection{background:var(--ghost-accent-color,#3eb0ef);color:#fff;text-shadow:none}::selection{background:var(--ghost-accent-color,#3eb0ef);color:#fff;text-shadow:none}hr{border:0;border-top:1px solid #e3e9ed;display:block;height:1px;margin:2.5em 0 3.5em;padding:0;position:relative;width:100%}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{line-height:1.6em;margin:.5em 0;padding-left:.3em}dt{color:#15171a;float:left;font-weight:500;margin:0 20px 0 0;text-align:right;width:120px}dd{margin:0 0 5px;text-align:left}blockquote{border-left:.5em solid #e5eff5;margin:1.5em 0;padding:0 1.6em}blockquote p{font-size:1.2em;font-weight:300;margin:.8em 0}blockquote small{display:inline-block;font-size:.9em;margin:.8em 0 .8em 1.5em;opacity:.8}blockquote small:before{content:\"\\2014 \\00A0\"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:var(--ghost-accent-color,#3eb0ef);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.15;margin-top:0;text-rendering:optimizeLegibility}h1{font-size:5.5rem;font-weight:600;margin:0 0 .5em}@media (max-width:500px){h1{font-size:2.2rem}}h2{font-size:2.2rem;margin:1.5em 0 .5em}@media (max-width:500px){h2{font-size:1.8rem}}h3{font-size:1.8rem;font-weight:500;margin:1.5em 0 .5em}@media (max-width:500px){h3{font-size:1.7rem}}h4{font-size:1.6rem;font-weight:500;margin:1.5em 0 .5em}h5,h6{font-size:1.4rem;font-weight:500;margin:1.5em 0 .5em}body{background:#fff}.img{background-position:50%;background-size:cover;border-radius:100%;display:block;height:100%;width:100%}.hidden{position:absolute;text-indent:-9999px;visibility:hidden}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-main{flex-grow:1;z-index:100}.outer{padding:0 5vw;position:relative}.inner{margin:0 auto;max-width:1040px;width:100%}@media (min-width:900px){.author-template .post-feed,.home-template .post-feed,.tag-template .post-feed{border-top-left-radius:3px;border-top-right-radius:3px;padding:40px 0 5vw}.home-template .site-nav{position:relative}}.site-header{height:64px}.site-header-background{background:#090a0b no-repeat 50%;background-size:cover;color:#fff;margin-top:64px;padding-bottom:12px;position:relative}.site-header-background:before{background:rgba(0,0,0,.18);bottom:0}.site-header-background:after,.site-header-background:before{content:\"\";display:block;left:0;position:absolute;right:0;top:0;z-index:10}.site-header-background:after{background:linear-gradient(rgba(0,0,0,.15),transparent);bottom:auto;height:140px}.site-header-background.no-image:after,.site-header-background.no-image:before{display:none}.site-header-content{align-items:center;display:flex;flex-direction:column;justify-content:center;max-height:340px;min-height:200px;padding:6vw 3vw;z-index:100}.site-title{font-size:5rem;font-weight:600;line-height:1em;margin:0 0 0 -2px;padding:0;z-index:10}.site-logo{max-height:55px}.site-description{font-size:2.1rem;font-weight:400;line-height:1.4em;margin:0;opacity:.8;padding:5px 0;z-index:10}.site-home-header{z-index:1000}.site-home-header .site-header-background{margin-top:0}.site-home-header .site-header-content{padding:5vw 3vw 6vw}.site-home-header .site-title{font-size:5.5rem;text-align:center}.site-home-header .site-description{font-size:2.2rem;font-weight:300;text-align:center}.site-archive-header .site-header-content{align-items:stretch;max-height:600px;min-height:200px;padding:12vw 0 20px;position:relative}.site-archive-header .no-image{background:#fff;color:#15171a;opacity:1;padding-bottom:0;padding-top:0}.site-archive-header .no-image .site-description{color:#738a94;opacity:1}.site-archive-header .no-image .site-header-content{border-bottom:1px solid #e9eef1;padding:5vw 0 10px}@media (max-width:900px){.site-header-content{padding-bottom:9vw}}@media (max-width:500px){.site-home-header .site-title{font-size:4.2rem}.site-home-header .site-description{font-size:1.8rem}.site-archive-header .site-header-content{align-items:center;flex-direction:column;min-height:unset}.site-archive-header .site-title{font-size:4.2rem;text-align:center}.site-archive-header .no-image .site-header-content{padding:12vw 0 20px}}.site-nav-main{background:#090a0b;left:0;position:fixed;right:0;top:0;z-index:1000}.site-nav{font-size:1.3rem;justify-content:space-between;z-index:100}.site-nav,.site-nav-left{align-items:flex-start;display:flex;height:64px;position:relative}.site-nav-left,.site-nav-left-content{flex:1 0 auto;overflow-y:hidden}.site-nav-left-content{-webkit-overflow-scrolling:touch;-ms-overflow-scrolling:touch;align-items:center;display:flex;font-weight:500;letter-spacing:.2px;margin-right:10px;overflow-x:auto;padding:10px 0 80px;text-transform:uppercase;white-space:nowrap}@media (max-width:700px){.site-header-background:not(.responsive-header-img) .site-nav-left:after,.site-nav-main .site-nav-left:after{background:linear-gradient(90deg,rgba(9,10,11,0) 0,#090a0b);content:\"\";height:100%;position:absolute;right:10px;top:0;width:40px;z-index:1000}.nav li:last-of-type{padding-right:20px}}.site-nav-logo{color:#fff;display:inline-block;flex-shrink:0;font-size:1.7rem;font-weight:700;letter-spacing:-.5px;line-height:1.8rem;margin-right:32px;padding:12px 0;position:relative;text-transform:none;z-index:100}.site-nav-logo:hover{text-decoration:none}.site-nav-logo img{display:block;height:21px;width:auto}.site-home-header .site-nav-logo{display:none}.site-nav-content{align-self:flex-start;position:relative}.nav{display:flex;list-style:none;margin:0 0 0 -12px;padding:0;position:absolute;transition:all 1s cubic-bezier(.19,1,.22,1);z-index:1000}.nav li{display:block;margin:0;padding:0}.nav li a{color:#fff;display:block;opacity:.8;padding:12px;position:relative;transition:opacity .35s ease-in-out}.nav li a:hover{opacity:1;text-decoration:none}.nav li a:before{background:#fff;bottom:8px;content:\"\";height:1px;left:12px;opacity:.25;position:absolute;right:100%;transition:all .35s ease-in-out}.nav li a:hover:before{opacity:.5;right:12px}.nav-post-title-active .nav{opacity:0;transform:translateY(-175%);visibility:hidden}.nav-post-title{color:#fff;font-size:1.7rem;font-weight:400;opacity:0;position:absolute;text-transform:none;top:9px;transform:translateY(175%);transition:all 1s cubic-bezier(.19,1,.22,1);visibility:hidden}.nav-post-title.dash{left:-25px}.nav-post-title.dash:before{content:\"– \";opacity:.5}.nav-post-title-active .nav-post-title{opacity:1;transform:translateY(0);visibility:visible}.site-nav-right{align-items:center;display:flex;flex-shrink:0;font-size:1.4rem;height:64px;line-height:1em;padding:9px 0 10px}.site-nav-right a{color:#fff}.button.small.signout-link{box-shadow:inset 0 0 0 1px #fff;color:#fff;opacity:.8}.button.small.signout-link:hover{opacity:1}.account-menu{position:relative}.account-menu-avatar{background:#e3e9ed;border-radius:100%;cursor:pointer;display:block;height:32px;margin:0;padding:1px;position:relative;width:32px}.account-menu-avatar img{border-radius:100%;bottom:0;left:0;position:absolute;right:0;top:0}.account-menu ul{background:#fff;border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.06);list-style:none;min-width:240px;opacity:0;padding:8px 0;pointer-events:none;position:absolute;right:-8px;top:43px;transform:translateY(-6px) scale(.95);transform-origin:top right;transition:all .3s cubic-bezier(.4,.01,.165,.99),opacity .2s cubic-bezier(.4,.01,.165,.99);visibility:hidden;z-index:9998}.account-menu-avatar.active+ul{opacity:1;pointer-events:all;transform:translateY(0) scale(1);visibility:visible}.account-menu ul:before{border-color:transparent transparent #fff;border-style:solid;border-width:0 10px 10px;content:\"\";height:0;position:absolute;right:14px;top:-8px;width:0;z-index:9998}.account-menu ul li{margin:0;padding:0}.account-menu .account-info{border-bottom:1px solid #e5eff5;color:#738a94;display:flex;flex-direction:column;margin:0 0 6px;padding:4px 20px 12px}.account-info .account-email{color:#313b3f;display:inline-block;font-weight:600;margin-top:-4px;max-width:200px;overflow-x:hidden;text-overflow:ellipsis}.account-menu ul a{color:#313b3f;display:block;padding:6px 20px}.account-menu ul a:hover{color:var(--ghost-accent-color,#3eb0ef);text-decoration:none}.home-template .site-nav-main{z-index:100}.home-template .site-nav-main .site-nav{opacity:0;transition:all .5s cubic-bezier(.19,1,.22,1) 0s}.home-template .site-nav-main .fixed-nav-active{opacity:1;transition:all .5s cubic-bezier(.19,1,.22,1) .05s}@media (max-width:700px){.site-home-header .site-nav{margin-left:-5vw}.site-nav-main{padding-left:0;padding-right:0}.site-nav-left{margin-right:0;padding-left:5vw}.site-nav-main .site-nav-right{padding:9px 20px 10px 5px}}.posts{overflow-x:hidden}.post-feed{background:#fff;flex-wrap:wrap;margin:0 -20px;padding:50px 0 0}.post-card,.post-feed{display:flex;position:relative}.post-card{background-size:cover;border-bottom:1px solid #e9eef1;flex:1 1 301px;flex-direction:column;margin:0 0 40px;min-height:220px;overflow:hidden;padding:0 20px 40px}.post-card-image-link{border-radius:3px;display:block;overflow:hidden;position:relative}.post-card-image{background:#c5d2d9 no-repeat 50%;height:200px;-o-object-fit:cover;object-fit:cover;width:100%}.post-card-content-link{color:#15171a;display:block;position:relative}.post-card-content-link:hover{text-decoration:none}.post-card-header{margin:15px 0 0}.post-feed .no-image .post-card-content-link{padding:0}.no-image .post-card-header{margin-top:0}.post-card-primary-tag{color:var(--ghost-accent-color,#3eb0ef);font-size:1.2rem;font-weight:500;letter-spacing:.2px;text-transform:uppercase}.post-card-title{line-height:1.15em;margin:0 0 .4em;transition:color .2s ease-in-out}.no-image .post-card-title{margin-top:0}.post-card-content{display:flex;flex-direction:column;flex-grow:1}.post-card-excerpt{color:#738a94;font-family:Georgia,serif;max-width:56em}.post-card-excerpt p{margin-bottom:1em}.post-card-meta{align-items:flex-start;display:flex;padding:0}.author-profile-image,.avatar-wrapper{background:#e3e9ed;border-radius:100%;display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.post-card-meta .avatar-wrapper,.post-card-meta .profile-image-wrapper{position:relative}.author-list{display:flex;flex-wrap:wrap;list-style:none;margin:0 0 0 4px;padding:0}.author-list-item{flex-shrink:0;margin:0;padding:0;position:relative}.static-avatar{border:2px solid #fff;border-radius:100%;display:block;height:34px;margin:0 0 0 -6px;overflow:hidden;width:34px}.author-name-tooltip{background:#15171a;border-radius:3px;bottom:105%;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.03);color:#fff;display:block;font-size:1.2rem;letter-spacing:.2px;opacity:0;padding:2px 8px;pointer-events:none;position:absolute;transform:translateY(6px);transition:all .35s cubic-bezier(.4,.01,.165,.99);white-space:nowrap;z-index:999}.author-list-item:hover .author-name-tooltip{opacity:1;transform:translateY(0)}@media (max-width:700px){.author-name-tooltip{display:none}}.post-card-byline-content{color:#92a3ab;display:flex;flex:1 1 50%;flex-direction:column;font-size:1.2rem;font-weight:400;letter-spacing:.2px;line-height:1.4em;margin:2px 0 0 6px;text-transform:uppercase}.post-card-byline-content span{margin:0}.post-card-byline-content a{color:#424852;font-weight:600}.post-card-byline-date{font-size:1.2rem}.post-card-byline-date .bull{display:inline-block;margin:0 4px;opacity:.6}.single-author-byline{color:#5d7179;display:flex;flex-direction:column;font-size:1.3rem;font-weight:500;line-height:1.4em;margin-left:5px}.single-author{align-items:center;display:flex}.single-author .static-avatar{margin-left:-2px}.single-author-name{display:inline-block}@media (min-width:795px){.post-card-large{border-top:0;flex:1 1 100%;flex-direction:row;min-height:280px;padding-bottom:40px}.post-card-large:hover{border-bottom-color:#e3e9ed}.post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-card-large .post-card-image-link{flex:1 1 auto;margin-bottom:0;min-height:380px;position:relative}.post-card-large .post-card-image{height:100%;position:absolute;width:100%}.post-card-large .post-card-content{flex:0 1 361px;justify-content:center}.post-card-large .post-card-title{font-size:3.2rem;margin-top:0}.post-card-large .post-card-content-link,.post-card-large .post-card-meta{padding:0 0 0 40px}.post-card-large .post-card-excerpt p{font-size:1.8rem;line-height:1.5em;margin-bottom:1.5em}}@media (max-width:1170px){.post-card{margin-bottom:5vw}}@media (max-width:650px){.post-feed{padding-top:5vw}.post-card{margin-bottom:5vw}}@media (max-width:500px){.post-card-title{font-size:1.9rem}.post-card-excerpt{font-size:1.6rem}}.page-template .site-main,.post-template .site-main{background:#fff;padding-bottom:4vw}.post-full-header{border-top-left-radius:3px;border-top-right-radius:3px;margin:0 auto;padding:70px 170px 50px;position:relative}.post-full-tags{align-items:center;color:#738a94;display:flex;font-size:1.3rem;font-weight:600;justify-content:flex-start;line-height:1.4em;text-transform:uppercase}.post-full-meta-date{color:#738a94;font-size:1.2rem;font-weight:400}@media (max-width:1170px){.post-full-header{padding:60px 11vw 50px}}@media (max-width:800px){.post-full-header{padding-left:5vw;padding-right:5vw}}@media (max-width:500px){.post-full-header{padding:20px 0 35px}}.post-full-title{color:#090a0b;margin:0 0 .2em}.post-full-custom-excerpt{color:#738a94;font-family:Georgia,serif;font-size:2.3rem;font-weight:300;line-height:1.4em;margin:20px 0 0}.date-divider{display:inline-block;font-weight:300;margin:0 6px 1px}.post-full-image{align-items:center;border-radius:3px;display:flex;flex-direction:column;margin:25px 0 50px;overflow:hidden}.post-full-image img{height:auto;max-width:1040px;width:100%}.post-full-content{background:#fff;font-family:Georgia,serif;font-size:2rem;line-height:1.6em;margin:0 auto;min-height:230px;padding:0 170px 5vw;position:relative}@media (max-width:1170px){.post-full-content{padding:0 11vw}}@media (max-width:800px){.post-full-content{font-size:1.8rem;padding:0 5vw}}@media (max-width:500px){.post-full-custom-excerpt{font-size:1.9rem;line-height:1.5em}}.no-image .post-full-content{padding-top:0}.no-image .post-full-content:after,.no-image .post-full-content:before{display:none}.footnotes,.post-full-comments,.post-full-content blockquote,.post-full-content dl,.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin:0 0 1.5em;min-width:100%}@media (max-width:500px){.footnotes,.post-full-comments,.post-full-content dl,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin-bottom:1.28em}}.post-full-content li{word-break:break-word}.post-full-content li p{margin:0}.post-full-content a{box-shadow:inset 0 -1px 0 #15171a;color:#15171a;transition:all .2s ease-in-out;word-break:break-word}.post-full-content a:hover{box-shadow:var(--ghost-accent-color,#3eb0ef) 0 -1px 0 inset;color:var(--ghost-accent-color,#3eb0ef);text-decoration:none}.post-full-content em,.post-full-content strong{color:#090a0b}.post-full-content small{display:inline-block;line-height:1.6em}.post-full-content li:first-child{margin-top:0}.post-full-content img,.post-full-content video{display:block;height:auto;margin:1.5em auto;max-width:1040px}@media (max-width:1040px){.post-full-content img,.post-full-content video{width:100%}}.post-full-content img[src$=\"#full\"]{max-width:none;width:100vw}.post-full-content img+br+small{display:block;margin-bottom:1.5em;margin-top:-3em;text-align:center}.post-full-content iframe{margin:0 auto!important}.post-full-content blockquote{border-left:3px solid #3eb0ef;margin:0 0 1.5em;padding:0 1.5em}@media (max-width:500px){.post-full-content blockquote{padding:0 1.3em}}.post-full-content blockquote p{color:inherit;font-size:inherit;font-style:italic;line-height:inherit;margin:0 0 1em}.post-full-content blockquote p:last-child{margin-bottom:0}.post-full-content code{background:#e5eff5;border-radius:3px;font-size:.8em;font-weight:400!important;line-height:1em;padding:0 5px 2px}.post-full-content p code{word-break:break-all}.post-full-content pre{background:#0e0f11;border:1px solid #000;border-radius:5px;color:#e5eff5;font-size:1.4rem;line-height:1.5em;margin:1.5em 0 3em;max-width:100%;overflow-x:auto;padding:20px}.post-full-content pre ::-moz-selection{color:#3c484e}.post-full-content pre ::selection{color:#3c484e}.post-full-content pre code{background:transparent;font-size:inherit;line-height:inherit;padding:0}.post-full-content pre code :not(span){color:inherit}.post-full-content .fluid-width-video-wrapper{margin:1.5em 0 3em}.post-full-content hr{margin:2em 0}.post-full-content hr:after{background:#e3e9ed;box-shadow:0 0 0 5px #fff;content:\"\";display:block;height:30px;left:50%;margin-left:-10px;position:absolute;top:-15px;transform:rotate(45deg);width:1px}.post-full-content hr+p{margin-top:1.2em}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6{color:#090a0b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.post-full-content h1{font-size:4.2rem;font-weight:600;line-height:1.25em;margin:.5em 0 .4em}.post-full-content p+h1{margin-top:.8em}@media (max-width:800px){.post-full-content h1{font-size:3.2rem;line-height:1.25em}}.post-full-content h2{font-size:3.2rem;font-weight:600;line-height:1.25em;margin:.5em 0 .4em}.post-full-content p+h2{margin-top:.8em}@media (max-width:800px){.post-full-content h2{font-size:2.8rem;line-height:1.25em;margin-bottom:.3em}}.post-full-content h3{font-size:2.5rem;font-weight:600;line-height:1.3em;margin:.5em 0 .2em}.post-full-content h2+h3{margin-top:.7em}@media (max-width:800px){.post-full-content h3{font-size:2.4rem;line-height:1.3em;margin-bottom:.3em}}.post-full-content h4{font-size:2.5rem;font-weight:600;margin:.5em 0 .2em}.post-full-content h2+h4{margin-top:.7em}.post-full-content h3+h4{margin-top:0}@media (max-width:800px){.post-full-content h4{font-size:2.4rem;line-height:1.3em;margin-bottom:.3em}}.post-full-content h5{border:0;color:var(--ghost-accent-color,#3eb0ef);display:block;font-family:Georgia,serif;font-size:3.2rem;line-height:1.35em;margin:.5em 0;padding:.4em 1em .9em;text-align:center}@media (min-width:1180px){.post-full-content h5{max-width:1060px;width:100vw}}@media (max-width:800px){.post-full-content h5{font-size:2.4rem;margin-bottom:1em;margin-left:1.3em;padding:0 0 .5em;text-align:initial}}.post-full-content h6{font-size:2rem;font-weight:700;margin:.5em 0 .2em}@media (max-width:800px){.post-full-content h6{font-size:1.8rem;line-height:1.4em}}.footnotes-sep{margin-bottom:30px}.footnotes{font-size:1.5rem}.footnotes p{margin:0}.footnote-backref{box-shadow:none!important;color:var(--ghost-accent-color,#3eb0ef)!important;font-size:1.2rem;font-weight:700;text-decoration:none!important}@media (max-width:1170px){.post-full-image{border-radius:0;margin:25px -6vw 50px}.post-full-image img{max-width:1170px}}@media (max-width:700px){.post-full-image{margin:25px -5vw}}@media (max-width:500px){.post-full-meta{font-size:1.2rem;line-height:1.3em}.post-full-title{font-size:4.2rem;line-height:1.05em;margin-top:.2em}.post-full-image{margin-bottom:5vw;margin-top:5px}.post-full-content{padding:0}.post-full-content:after,.post-full-content:before{display:none}}.post-full-content table{-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at left,rgba(0,0,0,.2) 0,transparent 75%) 0,radial-gradient(ellipse at right,rgba(0,0,0,.2) 0,transparent 75%) 100%;background-attachment:scroll,scroll;background-repeat:no-repeat;background-size:10px 100%,10px 100%;border-collapse:collapse;border-spacing:0;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;margin:.5em 0 2.5em;max-width:100%;overflow-x:auto;vertical-align:top;white-space:nowrap;width:auto}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:20px 100%}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-repeat:no-repeat;background-size:20px 100%}.post-full-content table th{background-color:#f4f8fb;color:#15171a;font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase}.post-full-content table td,.post-full-content table th{border:1px solid #e3ecf3;padding:6px 12px}.post-full-byline{border-top:1px solid #e3e9ed;display:flex;justify-content:space-between;margin:35px 0 0;padding-top:15px}.post-full-byline-content{align-items:flex-start;display:flex;flex-grow:1}.post-full-byline-content .author-list{justify-content:flex-start;padding:0 12px 0 0}.post-full-byline-meta{color:#92a3ab;font-size:1.2rem;letter-spacing:.2px;line-height:1.2em;margin:2px 0 0;text-transform:uppercase}.post-full-byline-meta h4{font-size:1.3rem;font-weight:500;line-height:1.4em;margin:0 0 3px}.post-full-byline-meta h4 a{color:#2b2f36}.post-full-byline-meta h4 a:hover{color:#15171a}.post-full-byline-meta .bull{display:inline-block;margin:0 4px;opacity:.6}.author-avatar{border:2px solid #fff;border-radius:100%;display:block;height:40px;margin:0 -4px;overflow:hidden;transition:all .5s cubic-bezier(.4,.01,.165,.99) .7s;width:40px}.author-list-item .author-card{background:#fff;border-radius:3px;bottom:130%;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.06);display:flex;font-size:1.4rem;justify-content:space-between;left:50%;line-height:1.5em;margin-left:-200px;opacity:0;pointer-events:none;position:absolute;transform:scale(.98) translateY(15px);transition:all .35s cubic-bezier(.4,.01,.165,.99);width:400px;z-index:600}.author-list-item .author-card:before{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #fff;content:\"\";display:block;height:0;left:50%;margin-left:-8px;position:absolute;top:100%;width:0}.author-list-item .author-card.hovered{opacity:1;pointer-events:auto;transform:scale(1) translateY(0)}.author-card{padding:20px 20px 22px}.author-card .author-info{flex:1 1 auto;padding:0 0 0 20px}.author-card .author-info h2{font-size:1.6rem;margin:8px 0 0}.author-card .author-info p{color:#5d7179;margin:4px 0 0}.author-card .author-info .bio h2{margin-top:0}.author-card .author-info .bio p{margin-top:.8em}.author-card .author-profile-image{border:none;flex:0 0 60px;height:60px;margin:0;width:60px}.basic-info .avatar-wrapper{background:rgba(229,239,245,.1);border:none;height:60px;margin:0;position:relative;width:60px}.basic-info .avatar-wrapper svg{height:60px;margin:0;opacity:.15;width:60px}@media (max-width:1170px){.author-list-item .author-card{margin-left:-50px;width:430px}.author-list-item .author-card:before{left:50px}}@media (max-width:650px){.author-list-item .author-card{display:none}}@media (max-width:500px){.author-avatar{height:36px;width:36px}.post-full-byline{margin-top:20px}.post-full-byline-meta{font-size:1.2rem}.post-full-byline-meta h4{font-size:1.2rem;margin-bottom:2px}}.subscribe-form{background:linear-gradient(#fbfdfe,#f4f8fb);border:1px solid #e3e9ed;border-radius:3px;margin:1.5em 0;padding:6.5vw 7vw 8vw;text-align:center}.subscribe-form-title{color:#15171a;font-size:3.5rem;font-weight:600;line-height:1;margin:0 0 3px;padding:0}.subscribe-form-description{color:#738a94;font-size:2.1rem;line-height:1.55em;margin-bottom:.2em 0 1em}.subscribe-form form{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:460px}.subscribe-form .form-group{align-self:stretch;display:flex}.subscribe-email{-webkit-appearance:none;border:1px solid #dae2e7;border-radius:5px;color:#738a94;display:block;font-size:1.8rem;font-weight:400;line-height:1em;padding:10px;transition:border-color .15s linear;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;width:100%}.subscribe-form button{-webkit-font-smoothing:subpixel-antialiased;background:linear-gradient(color(var(--ghost-accent-color,#3eb0ef) whiteness(7%)),color(var(--ghost-accent-color,#3eb0ef) lightness(-7%) saturation(-10%)) 60%,color(var(--ghost-accent-color,#3eb0ef) lightness(-7%) saturation(-10%)) 90%,color(var(--ghost-accent-color,#3eb0ef) lightness(-4%) saturation(-10%)));border-radius:5px;color:#fff;display:inline-block;font-size:1.5rem;font-weight:400;height:43px;line-height:39px;margin:0 0 0 10px;outline:none;padding:0 20px;position:relative;text-align:center}.subscribe-form button:active,.subscribe-form button:focus{background:color(var(--ghost-accent-color,#3eb0ef) lightness(-9%) saturation(-10%))}.subscribe-form .button-loader,.subscribe-form .message-error,.subscribe-form .message-success{display:none}.subscribe-form .loading .button-content{visibility:hidden}.subscribe-form .loading .button-loader{display:inline-block;left:50%;margin-left:-19px;position:absolute;top:0;transform:scale(.7)}.subscribe-form .button-loader svg path,.subscribe-form .button-loader svg rect{fill:#fff}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error,.subscribe-form .success .message-success{color:#f05230;font-size:1.6rem;line-height:1.5em;margin:1em auto 0;max-width:400px;text-align:center}.subscribe-form .success .message-success{color:#98c22e;display:block}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{display:block}@media (max-width:650px){.subscribe-form-title{font-size:2.4rem}.subscribe-form-description{font-size:1.6rem}}@media (max-width:500px){.subscribe-form form{flex-direction:column}.subscribe-form .form-group{flex-direction:column;width:100%}.subscribe-form button{margin:10px 0 0;width:100%}}.post-full-comments{margin:0 auto;max-width:840px}.read-next{background:#090a0b;border-bottom:1px solid hsla(0,0%,100%,.1)}.read-next-feed{display:flex;flex-wrap:wrap;margin:0 -25px;padding:60px 0 0}.read-next .post-card{border-bottom:none;padding-bottom:0}.read-next .post-card:after{display:none}.read-next .post-card-primary-tag{color:#fff;opacity:.6}.read-next .post-card-title{color:#fff;opacity:.8;transition:all .2s ease-in-out}.read-next .post-card:hover .post-card-image{opacity:1}.read-next .post-card-excerpt{color:hsla(0,0%,100%,.6)}.read-next .static-avatar{border-color:#000}.read-next .post-card-byline-content{color:hsla(0,0%,100%,.6)}.read-next .post-card-byline-content a{color:hsla(0,0%,100%,.8)}.read-next-card{background:linear-gradient(#191b1f,#090a0b);border-radius:3px;display:flex;flex:0 1 326px;flex-direction:column;margin:0 25px 50px;overflow:hidden;padding:25px;position:relative}.read-next-card a{transition:all .2s ease-in-out}.read-next-card a:hover{text-decoration:none}.read-next-card-header h3{color:hsla(0,0%,100%,.6);font-size:1.2rem;font-weight:300;letter-spacing:.4px;line-height:1em;margin:0;text-transform:uppercase}.read-next-card-header h3 a{color:#fff;font-weight:500;opacity:.8;text-decoration:none}.read-next-card-header h3 a:hover{opacity:1}.read-next-card-content{font-size:1.7rem}.read-next-card-content ul{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.read-next-card-content li{align-items:flex-start;border-bottom:hsla(0,0%,100%,.1);display:flex;flex-direction:column;margin:0;padding:20px 0}.read-next-card-content li:last-of-type{border:none;padding-bottom:5px}.read-next-card-content h4{font-size:1.6rem;font-weight:600;line-height:1.35em;margin:0}.read-next-card-content li a{color:#fff;display:block;opacity:.8}.read-next-card-content li a:hover{opacity:1}.read-next-card-excerpt{font-size:1.4rem;line-height:1.2em;max-width:100%;overflow:hidden;text-overflow:ellipsis}.read-next-card-meta{font-size:1.2rem;font-weight:400;line-height:1.4em;margin-top:2px}.read-next-card-meta p{color:hsla(0,0%,100%,.6);margin:0}.read-next-card-footer{margin:40px 0 5px;position:relative}.read-next-card-footer a{border:1px solid hsla(0,0%,100%,.6);border-radius:999px;color:hsla(0,0%,100%,.6);font-size:1.3rem;padding:7px 12px 8px 14px;transition:all .35s ease-in-out}.read-next-card-footer a:hover{border-color:#fecd35;color:#fecd35;text-decoration:none}@media (max-width:1170px){.read-next-card{flex:1 1 261px;margin-bottom:5vw}}@media (max-width:650px){.read-next-feed{flex-direction:column;padding:25px 0 0}.read-next-card{background:none;flex:1 1 auto;margin:0 25px;padding:0}.read-next .post-card{border-bottom:1px solid hsla(0,0%,100%,.1);flex:1 1 auto;margin:25px;padding:25px 0 0}}.post-content{align-items:center;display:flex;flex-direction:column}.post-full-content .kg-image{margin:0 auto;max-width:100%}.post-full-image+.post-full-content .kg-content :first-child .kg-image{width:100%}.post-full-content .kg-width-wide .kg-image{max-width:1040px}.post-full-content .kg-width-full .kg-image{max-width:100vw}.post-full-content figure{margin:.8em 0 2.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:2em}.post-full-content figure img{margin:0}figcaption{color:#5d7179;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:75%;line-height:1.5em;margin:1em auto 0;max-width:1040px;text-align:center}.kg-width-full figcaption{padding:0 1.5em}.kg-embed-card{align-items:center;display:flex;flex-direction:column;width:100%}.kg-embed-card .fluid-width-video-wrapper{margin:0}@media (max-width:1040px){.post-full-content .kg-width-full .kg-image{width:100vw}}.kg-gallery-container{display:flex;flex-direction:column;max-width:1040px;width:100vw}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}.kg-gallery-image img{display:block;height:100%;margin:0;width:100%}.kg-gallery-row:not(:first-of-type){margin:.75em 0 0}.kg-gallery-image:not(:first-of-type){margin:0 0 0 .75em}.kg-gallery-card+.kg-gallery-card,.kg-gallery-card+.kg-image-card.kg-width-wide,.kg-image-card.kg-width-wide+.kg-gallery-card,.kg-image-card.kg-width-wide+.kg-image-card.kg-width-wide{margin:-2.25em 0 3em}.kg-code-card{width:100%}.kg-code-card pre{margin:0}.kg-bookmark-card{background:var(--white);width:100%}.kg-card+.kg-bookmark-card{margin-top:0}.post-full-content .kg-bookmark-container{border-radius:3px;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;min-height:148px}.post-full-content .kg-bookmark-container,.post-full-content .kg-bookmark-container:hover{box-shadow:0 2px 5px -1px rgba(0,0,0,.15),0 0 1px rgba(0,0,0,.09);color:#15171a;text-decoration:none}.kg-bookmark-content{align-items:flex-start;display:flex;flex-direction:column;flex-grow:1;justify-content:flex-start;padding:20px}.kg-bookmark-title{color:#313b3f;font-size:1.6rem;font-weight:600;line-height:1.5em;transition:color .2s ease-in-out}.post-full-content .kg-bookmark-container:hover .kg-bookmark-title{color:var(--ghost-accent-color,#3eb0ef)}.kg-bookmark-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#5d7179;display:-webkit-box;font-size:1.5rem;font-weight:400;line-height:1.5em;margin-top:12px;max-height:48px;overflow-y:hidden}.kg-bookmark-thumbnail{max-height:100%;min-width:33%;position:relative}.kg-bookmark-thumbnail img{border-radius:0 3px 3px 0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;width:100%}.kg-bookmark-metadata{align-items:center;color:#5d7179;display:flex;flex-wrap:wrap;font-size:1.5rem;font-weight:400;margin-top:14px}.post-full-content .kg-bookmark-icon{height:22px;margin-right:8px;width:22px}.kg-bookmark-author{line-height:1.5em}.kg-bookmark-author:after{content:\"•\";margin:0 6px}.kg-bookmark-publisher{line-height:1.5em;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:800px){.post-full-content figure{margin:.2em 0 1.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:.9em}}@media (max-width:500px){.post-full-content .kg-width-full,.post-full-content .kg-width-wide{margin-left:-5vw;margin-right:-5vw}.post-full-content figcaption{margin-bottom:.4em}.post-full-content .kg-bookmark-container{flex-direction:column}.kg-bookmark-description,.kg-bookmark-metadata,.kg-bookmark-title{font-size:1.4rem;line-height:1.5em}.post-full-content .kg-bookmark-icon{height:18px;width:18px}.kg-bookmark-thumbnail{min-height:160px;order:1;width:100%}.kg-bookmark-thumbnail img{border-radius:3px 3px 0 0}.kg-bookmark-content{order:2}}.author-header{align-items:flex-start;display:flex;flex-direction:row;justify-content:flex-start;padding:10vw 0 10px}.site-archive-header .author-header{align-items:center}.site-archive-header .no-image .author-header{padding-bottom:20px}.author-header-content{display:flex;flex-direction:column;justify-content:center;margin:5px 0 0 30px}.site-header-content .author-profile-image{box-shadow:0 0 0 6px hsla(0,0%,100%,.1);flex-shrink:0;height:110px;margin:-4px 0 0;width:110px;z-index:10}.author-header-content .author-bio{flex-shrink:0;font-size:2rem;font-weight:400;line-height:1.3em;margin:6px 0 0;max-width:46em;opacity:.8;z-index:10}.author-header-content .author-meta{align-items:center;display:flex;flex-shrink:0;font-size:1.2rem;font-weight:400;letter-spacing:.2px;margin:0 0 0 1px;text-transform:uppercase;white-space:nowrap;z-index:10}.author-header-content .social-link:first-of-type{padding-left:4px}.no-image .author-header-content .author-bio,.no-image .author-header-content .author-meta{color:#738a94;opacity:1}.author-social-link a{color:#fff;font-weight:600}.no-image .author-social-link a{color:#15171a}.author-social-link a:hover{opacity:1}.author-social-link{display:inline-block;margin:0;padding:6px 0}.author-location+.author-stats:before,.author-social-link+.author-social-link:before,.author-stats+.author-social-link:before{color:#fff;content:\"\\2022\";display:inline-block;margin:0 12px;opacity:.6}.no-image .author-location+.author-stats:before,.no-image .author-social-link+.author-social-link:before,.no-image .author-stats+.author-social-link:before{color:#738a94}@media (max-width:700px){.author-location,.author-stats,.author-stats+.author-social-link:first-of-type:before{display:none}}@media (max-width:500px){.author-header{padding:10px 0 0}.no-image .author-header{padding-bottom:10px}.author-header-content{align-items:center;margin:16px 0 0}.site-header-content .author-profile-image{height:96px;width:96px}.author-header-content .author-bio{font-size:1.8rem;letter-spacing:0;line-height:1.3em;text-align:center}.author-header-content .author-meta{margin-top:8px}.author-location+.author-stats:before,.author-social-link+.author-social-link:before,.author-stats+.author-social-link:before{display:inline;margin:0 6px}}.error-content{padding:14vw 4vw 6vw}.site-nav-center{align-items:center;display:flex;justify-content:center;padding:10px 0;text-align:center}.site-nav-center .site-nav-logo{margin-right:0}.error-message{border-bottom:1px solid #e3e9ed;padding-bottom:10vw;text-align:center}.error-code{color:#c5d2d9;font-size:12vw;letter-spacing:-5px;line-height:1em;margin:0;opacity:.75}.error-description{color:#738a94;font-size:3rem;font-weight:400;line-height:1.3em;margin:0}.error-link{display:inline-block;margin-top:5px}@media (min-width:940px){.error-content .post-card{border-bottom:none;margin-bottom:0;padding-bottom:0}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:11.2rem}.error-message{padding-bottom:16vw}.error-description{font-size:1.8rem;margin:5px 0 0}}@media (max-width:500px){.error-content{padding-top:28vw}.error-message{padding-bottom:14vw}}.notification{background:#98c22e;color:#fff;font-size:1.6rem;font-weight:500;left:0;line-height:1.3em;padding:22px 60px;position:fixed;right:0;text-align:center;top:0;transform:translateY(-175%);transition:all .35s cubic-bezier(.19,1,.22,1) .5s;visibility:hidden;z-index:9000}.signin-success .notification-signin,.signup-success .notification-signup,.subscribe-success .notification-subscribe{transform:translateY(0);visibility:visible}.signin-failure .notification-signin-failure{background:#ee3e17;transform:translateY(0);visibility:visible}.billing-success .notification-billing-update,.checkout-success .notification-checkout{transform:translateY(0);visibility:visible}.billing-cancel .notification-billing-update-cancel{background:#ee3e17;transform:translateY(0);visibility:visible}.notification.closed{transform:translateY(-175%);transition:all 1.35s cubic-bezier(.19,1,.22,1);visibility:hidden}.notification-close{bottom:0;display:block;left:0;position:absolute;right:0;top:0}.notification-close:before{transform:rotate(45deg)}.notification-close:after,.notification-close:before{background:#fff;border-radius:2px;content:\"\";display:block;height:2px;position:absolute;right:25px;top:29px;width:18px}.notification-close:after{transform:rotate(-45deg)}.subscribe-overlay{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:rgba(9,10,11,.97);bottom:0;display:flex;justify-content:center;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .2s ease-in;z-index:9000}.subscribe-overlay .subscribe-close:after,.subscribe-overlay .subscribe-close:before{top:36px;width:30px}.subscribe-overlay:target{opacity:1;pointer-events:auto}.subscribe-overlay-content{color:#fff;margin:0 0 5vw;padding:4vw;position:relative;text-align:center;z-index:9999}.subscribe-overlay .subscribe-form{background:none;border:none;color:#fff}.subscribe-overlay-logo{height:30px;left:30px;position:fixed;top:23px}.subscribe-overlay-title{display:inline-block;font-size:5.2rem;line-height:1.15em;margin:0 0 10px}.subscribe-overlay-description{color:#fff;font-family:Georgia,serif;font-size:2.4rem;font-weight:300;line-height:1.3em;margin:0 auto 50px;max-width:650px;opacity:.8}.subscribe-overlay form{align-items:center;display:flex;justify-content:center;margin:0 auto;max-width:540px}.subscribe-overlay .form-group{flex-grow:1}.subscribe-overlay .subscribe-email{-webkit-appearance:none;border:none;border-radius:8px;color:#738a94;display:block;font-size:2rem;font-weight:400;letter-spacing:.5px;line-height:1em;padding:14px 20px;transition:border-color .15s linear;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;width:100%}.subscribe-email:focus{border-color:#becdd5;outline:0}.subscribe-overlay button{-webkit-font-smoothing:subpixel-antialiased;background:linear-gradient(color(var(--ghost-accent-color,#3eb0ef) whiteness(7%)),color(var(--ghost-accent-color,#3eb0ef) lightness(-7%) saturation(-10%)) 60%,color(var(--ghost-accent-color,#3eb0ef) lightness(-7%) saturation(-10%)) 90%,color(var(--ghost-accent-color,#3eb0ef) lightness(-4%) saturation(-10%)));border-radius:8px;color:#fff;display:inline-block;font-size:1.7rem;font-weight:400;height:52px;line-height:38px;margin:0 0 0 15px;outline:none;padding:0 25px;text-align:center}.subscribe-overlay button:active,.subscribe-overlay button:focus{background:color(var(--ghost-accent-color,#3eb0ef) lightness(-9%) saturation(-10%))}.subscribe-overlay .loading .button-loader{top:5px}.site-footer{background:#090a0b;color:#fff;padding-bottom:60px;padding-top:20px;position:relative}.site-footer-content{align-items:center;display:flex;flex-wrap:wrap;font-size:1.3rem;justify-content:space-between}.site-footer-content,.site-footer-content a{color:hsla(0,0%,100%,.7)}.site-footer-content a:hover{color:#fff;text-decoration:none}.site-footer .copyright a{padding:0 0 0 15px}.site-footer .copyright a:first-child{padding:0}@media (max-width:650px){.site-footer-content{flex-direction:column}.site-footer .copyright{align-items:center;display:flex;flex-wrap:wrap;justify-content:center}}input[type=email],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select{background:#fff;border:1px solid #c5d2d9;border-radius:5px;color:inherit;display:block;height:44px;outline:0;padding:0 .6em;text-decoration:none;width:100%}input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:var(--ghost-accent-color,#3eb0ef)}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:5px;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;height:44px;line-height:42px;padding:0 1.8rem;text-align:center;text-decoration:none;transition:.4s ease;white-space:nowrap}.button.fit{width:100%}.button.small{font-size:1.4rem;height:30px;line-height:30px;padding:0 1.1rem}.button.large{font-size:1.6rem;height:50.16px;line-height:50.16px;padding:0 3rem}.button.disabled,.button:disabled{opacity:.4;pointer-events:none}.button{background-color:transparent}.button,.button:hover{box-shadow:inset 0 0 0 1px var(--ghost-accent-color,#3eb0ef);color:var(--ghost-accent-color,#3eb0ef)}.button:hover{text-decoration:none;transition:.2s ease}.button.primary{box-shadow:none;color:#fff}.button.primary,.button.primary:hover{background-color:var(--ghost-accent-color,#3eb0ef)}.site-signup{align-items:center;display:flex;flex-direction:column;justify-content:center}.signup-form{margin:0 auto 10vw;max-width:500px;text-align:center;width:100%}.signup-title{font-size:4.2rem;margin:0 0 .1em}.signup-form p{color:#738a94;font-size:1.3em}.signup-form p small{display:inline-block;font-size:1.4rem;margin:15px 0 0}.signup-box{align-items:center;display:flex;justify-content:space-between}.signup-box .button{margin-left:10px}@media (max-width:600px){.signup-box{flex-direction:column}.signup-box .button{margin:15px 0 0;width:100%}}.site-signin{align-items:center;display:flex;flex-direction:column;justify-content:center}.signin-form{margin:0 auto 10vw;max-width:500px;text-align:center;width:100%}.signin-title{font-size:4.2rem;margin:0 0 .1em}.signin-form p{color:#738a94;font-size:1.3em}.signin-form p small{display:inline-block;font-size:1.4rem;margin:15px 0 0}.signin-box{align-items:center;display:flex;justify-content:space-between}.signin-box .button{margin-left:10px}@media (max-width:600px){.signin-box{flex-direction:column}.signin-box .button{margin:15px 0 0;width:100%}}.checkout-form{margin:0 auto 10vw;max-width:700px;text-align:center;width:100%}.checkout-title{font-size:4rem;font-weight:600;letter-spacing:-.6px;margin:0 auto 10px;padding:5vw 0 0}.checkout-form p{color:#738a94;font-size:1.3em;margin:0 auto 60px;max-width:500px}.checkout-box{align-items:stretch;display:flex;justify-content:center}.checkout-plan{background:#fff;border-radius:10px;border-top:6px solid var(--ghost-accent-color,#3eb0ef);box-shadow:0 0 0 1px rgba(39,44,49,.03),0 0 3px rgba(39,44,49,.05),0 5px 22px -10px rgba(39,44,49,.12),0 25px 30px -25px rgba(39,44,49,.05);color:#313b3f;display:flex;flex:1 1 auto;flex-direction:column;padding:30px;text-align:left}.checkout-plan+.checkout-plan{margin-left:30px}.checkout-plan-header{color:#738a94;padding:0 0 50px;position:relative;text-align:center}.checkout-plan-header:after{background:rgba(39,44,49,.08);border-radius:2px;bottom:25px;content:\"\";display:block;height:2px;left:30%;position:absolute;right:30%}.checkout-plan-header h3{color:#15171a;font-size:1.8rem;font-weight:700;letter-spacing:1.5px;line-height:1.15em;margin:0 0 25px;text-transform:uppercase}.checkout-plan-header span{font-size:2.6rem;font-weight:300}.checkout-plan-header strong{color:#15171a;font-size:4.5rem;font-weight:500}.checkout-plan-content{display:flex;flex:1 1 auto;flex-direction:column;justify-content:space-between}.checkout-plan-content ul{list-style:none;margin:0;padding:0}.checkout-plan-content li{line-height:1.4em;margin:0;padding:0 0 15px 20px;position:relative}.checkout-plan-content li:before{color:#98c22e;content:\"✓\";display:block;font-size:1.6rem;font-weight:600;left:0;position:absolute}.checkout-plan-content .button{margin:20px 0 0}@media (max-width:740px){.checkout-title{margin-top:50px}.checkout-box{flex-direction:column}.checkout-plan+.checkout-plan{margin:5vw 0 0}}form[data-members-form] .button-loader,form[data-members-form] .message-error,form[data-members-form] .message-success{display:none}.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}form[data-members-form].error .message-error,form[data-members-form].success .message-success{background:#98c22e;border-radius:5px;color:#fff;font-size:1.4rem;font-weight:500;left:20px;line-height:1.5em;margin:0 auto;padding:10px 0;position:fixed;right:20px;text-align:center;top:84px;z-index:9999}form[data-members-form].success .message-success{background:#98c22e}form[data-members-form].error .message-error{background:#fff;box-shadow:0 0 0 1px #f05230;color:#f05230}form[data-members-form] .button{position:relative}form[data-members-form].loading .button-content{visibility:hidden}form[data-members-form].loading .button-loader{display:inline-block;height:31px;left:50%;margin-left:-19px;position:absolute;transform:scale(.7)}.button-loader svg path,.button-loader svg rect{fill:#fff}form[data-members-form].error .message-error,form[data-members-form].success .message-success{display:block}.site-account{align-items:center;display:flex;flex-direction:column;padding:5vw;z-index:1}.subscriber-box{margin:0 auto;max-width:560px;width:100%}.subscriber-header{align-items:flex-start;display:flex;justify-content:space-between}.subscription-title h1{font-size:3.4rem;margin-bottom:12px}.subscriber-avatar{background:#e3e9ed;border:1px solid #e3e9ed;border-radius:100%;flex:1 0 120px;height:120px;-o-object-fit:cover;object-fit:cover;position:relative;width:120px}.subscription .subscriber-avatar{margin:4px 0 0 20px}.subscriber-avatar img{border-radius:100%;bottom:0;left:0;position:absolute;right:0;top:0}.subscriber-box p{line-height:1.5em}.subscription{padding:20px 0 40px}.subscription-expiration-warning{color:#f05230}.subscriber-details{align-items:flex-start;border-bottom:1px solid #e3e9ed;border-top:1px solid #e3e9ed;display:flex;flex-wrap:wrap;margin-bottom:30px;padding:20px 0 0}.subscriber-detail{display:flex;flex:1 0 50%;flex-direction:column;margin:0 0 20px;padding:0 20px 0 0}.subscriber-detail-label{font-size:1.3rem;font-weight:700;text-transform:uppercase}.subscription-actions{display:flex;justify-content:space-between;list-style:none;margin:0;padding:0}.subscription-actions li{margin:0 .8rem 0 0;padding:0}.subscription-actions li:last-of-type{margin-right:0}.subscription-actions li a{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;border-radius:5px;box-shadow:inset 0 0 0 1px var(--ghost-accent-color,#3eb0ef);cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;height:44px;line-height:42px;padding:0 1.8rem;text-align:center;transition:.4s ease;white-space:nowrap}.subscription-actions li a,.subscription-actions li a:hover{color:var(--ghost-accent-color,#3eb0ef);text-decoration:none}.subscription-actions li a:hover{box-shadow:var(--ghost-accent-color,#3eb0ef);transition:.2s ease}.subscription-actions .gh-subscription-cancel{box-shadow:inset 0 0 0 1px #92a3ab;color:#92a3ab}.subscription-actions .gh-subscription-cancel:hover{box-shadow:inset 0 0 0 1px #738a94;color:#738a94}.gh-subscription-cancel[data-members-continue-subscription],.gh-subscription-cancel[data-members-continue-subscription]:hover{background-color:var(--ghost-accent-color,#3eb0ef);box-shadow:none;color:#fff}.gh-error-subscription-cancel{color:#f05230;display:block;font-size:1.5rem;margin-top:10px}.account-box{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:560px;width:100%}.account-box-title{font-size:3.4rem;margin-top:20px;text-align:center}.account-box p{text-align:center}.header-cta{margin-left:20px}.post-card-header-tags{align-items:center;display:flex;margin:0 0 .2em}.post-visibility{border:1px solid #c5d2d9;border-radius:4px;color:#738a94;display:inline-block;font-size:1.2rem;line-height:1.4em;margin:0 8px 1px 0;padding:1px 5px}.post-visibility-members,.post-visibility-paid{display:none}.post-upgrade-cta{align-items:center;display:flex;flex-direction:column}.post-upgrade-cta-content{background:var(--ghost-accent-color,#3eb0ef);border-radius:5px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;margin:0 5vw;max-width:840px;padding:40px 30px;text-align:center;width:90vw}.post-upgrade-cta-content h2{color:#fff;font-size:2.6rem;font-weight:600;letter-spacing:-.5px;margin:0}.post-upgrade-cta .button,.post-upgrade-cta .button:hover{background:#fff;box-shadow:none;color:var(--ghost-accent-color,#3eb0ef);margin:30px 0;text-decoration:none}.post-upgrade-cta p{margin:0}.post-upgrade-cta a,.post-upgrade-cta a:hover{box-shadow:none!important;color:#fff;text-decoration:underline}@media (max-width:600px){.subscriber-details{flex-direction:column}.subscriber-avatar{display:none}}@media (prefers-color-scheme:dark){body{background:#191b1f;color:hsla(0,0%,100%,.8)}h1,h2,h3,h4,h5,h6{color:#fff}img{opacity:.9}.site-header-background:before{background:rgba(0,0,0,.6)}.post-feed{background:#191b1f}.post-card,.post-card:hover{border-bottom-color:#2b2f36}.post-visibility{color:#c5d2d9}.author-profile-image{background:#24272d}.post-card-byline-content a{color:hsla(0,0%,100%,.75)}.post-card-byline-content a:hover{color:#fff}.post-card-image{background:#191b1f}.post-card-title{color:hsla(0,0%,100%,.85)}.post-card-excerpt{color:#92a3ab}.author-avatar,.static-avatar{border-color:#191b1f}.page-template .site-main,.post-full-content,.post-template .site-main,.site-main{background:#191b1f}.post-full-title{color:hsla(0,0%,100%,.9)}.post-full-custom-excerpt{color:#92a3ab}.post-full-image{background-color:#2b2f36}.post-full-byline{border-top-color:#3b404a}.post-full-byline-meta h4 a{color:hsla(0,0%,100%,.75)}.post-full-byline-meta h4 a:hover{color:#fff}.author-list-item .author-card{background:#22252a;box-shadow:0 12px 26px rgba(0,0,0,.4)}.author-list-item .author-card:before{border-top-color:#22252a}.no-image .author-social-link a{color:hsla(0,0%,100%,.75)}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h6{color:hsla(0,0%,100%,.9)}.post-full-content a{box-shadow:inset 0 -1px 0 #fff;color:#fff}.post-full-content em,.post-full-content strong{color:#fff}.post-full-content code{background:#000;color:#fff}hr{border-top-color:#2b2f36}.post-full-content hr:after{background:#2b2f36;box-shadow:0 0 0 5px #191b1f}.post-full-content figcaption{color:hsla(0,0%,100%,.6)}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#191b1f 50%,rgba(25,27,31,0))}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#191b1f 50%,rgba(25,27,31,0))}.post-full-content table th{background-color:#2b2f36;color:hsla(0,0%,100%,.85)}.post-full-content table td,.post-full-content table th{border:1px solid #2b2f36}.post-full-content .kg-bookmark-container{box-shadow:0 0 1px hsla(0,0%,100%,.9);color:hsla(0,0%,100%,.75)}.kg-bookmark-title{color:#fff}.kg-bookmark-description,.kg-bookmark-metadata{color:hsla(0,0%,100%,.75)}.site-archive-header .no-image{background:#191b1f;color:hsla(0,0%,100%,.9)}.site-archive-header .no-image .site-header-content{border-bottom-color:#3b404a}.site-header-content .author-profile-image{box-shadow:0 0 0 6px hsla(0,0%,100%,.04)}.subscribe-form{background:linear-gradient(#0b0c0e,#121417);border:none}.subscribe-form-title{color:hsla(0,0%,100%,.9)}.subscribe-form p{color:hsla(0,0%,100%,.7)}.subscribe-email{background:#202228;border-color:#272a30;color:hsla(0,0%,100%,.9)}.subscribe-email:focus{border-color:#525866}.subscribe-form button{opacity:.9}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{color:#ec694b}.subscribe-form .success .message-success{color:#acd053}.account-menu-avatar{background:#24272d}.account-menu-avatar img{opacity:1}.account-menu ul{background:#22252a;box-shadow:0 12px 26px rgba(0,0,0,.4)}.account-menu ul:before{border-color:transparent transparent #22252a}.account-menu .account-info{border-color:#30343b}.account-menu .account-email,.account-menu ul a{color:hsla(0,0%,100%,.9)}.subscriber-avatar{background:#24272d;border-color:#24272d}.subscriber-avatar img{opacity:1}.subscriber-details{border-color:#24272d}input[type=email],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select{color:#15171a}}\n/*# sourceMappingURL=screen.css.map */"
  },
  {
    "path": "assets/css/.csscomb.json",
    "content": "{\n    \"remove-empty-rulesets\": true,\n    \"always-semicolon\": true,\n    \"color-case\": \"lower\",\n    \"block-indent\": \"    \",\n    \"color-shorthand\": true,\n    \"element-case\": \"lower\",\n    \"eof-newline\": true,\n    \"leading-zero\": true,\n    \"quotes\": \"double\",\n    \"space-before-colon\": \"\",\n    \"space-after-colon\": \" \",\n    \"space-before-combinator\": \" \",\n    \"space-after-combinator\": \" \",\n    \"space-between-declarations\": \"\\n\",\n    \"space-before-opening-brace\": \" \",\n    \"space-after-opening-brace\": \"\\n\",\n    \"space-after-selector-delimiter\": \"\\n\",\n    \"space-before-selector-delimiter\": \"\",\n    \"space-before-closing-brace\": \"\\n\",\n    \"strip-spaces\": true,\n    \"tab-size\": 4,\n    \"unitless-zero\": true,\n    \"sort-order\": [ [\n        \"content\",\n        \"visibility\",\n        \"position\",\n        \"top\",\n        \"right\",\n        \"bottom\",\n        \"left\",\n        \"z-index\",\n        \"order\",\n        \"flex\",\n        \"flex-grow\",\n        \"flex-shrink\",\n        \"flex-basis\",\n        \"align-self\",\n        \"display\",\n        \"flex-flow\",\n        \"flex-direction\",\n        \"flex-wrap\",\n        \"justify-content\",\n        \"align-items\",\n        \"align-content\",\n        \"flex-order\",\n        \"flex-pack\",\n        \"flex-align\",\n        \"float\",\n        \"clear\",\n        \"overflow\",\n        \"overflow-x\",\n        \"overflow-y\",\n        \"-webkit-overflow-scrolling\",\n        \"clip\",\n        \"box-sizing\",\n        \"margin\",\n        \"margin-top\",\n        \"margin-right\",\n        \"margin-bottom\",\n        \"margin-left\",\n        \"padding\",\n        \"padding-top\",\n        \"padding-right\",\n        \"padding-bottom\",\n        \"padding-left\",\n        \"min-width\",\n        \"min-height\",\n        \"max-width\",\n        \"max-height\",\n        \"width\",\n        \"height\",\n        \"outline\",\n        \"outline-width\",\n        \"outline-style\",\n        \"outline-color\",\n        \"outline-offset\",\n        \"border\",\n        \"border-spacing\",\n        \"border-collapse\",\n        \"border-width\",\n        \"border-style\",\n        \"border-color\",\n        \"border-top\",\n        \"border-top-width\",\n        \"border-top-style\",\n        \"border-top-color\",\n        \"border-right\",\n        \"border-right-width\",\n        \"border-right-style\",\n        \"border-right-color\",\n        \"border-bottom\",\n        \"border-bottom-width\",\n        \"border-bottom-style\",\n        \"border-bottom-color\",\n        \"border-left\",\n        \"border-left-width\",\n        \"border-left-style\",\n        \"border-left-color\",\n        \"border-image\",\n        \"border-image-source\",\n        \"border-image-slice\",\n        \"border-image-width\",\n        \"border-image-outset\",\n        \"border-image-repeat\",\n        \"border-top-image\",\n        \"border-right-image\",\n        \"border-bottom-image\",\n        \"border-left-image\",\n        \"border-corner-image\",\n        \"border-top-left-image\",\n        \"border-top-right-image\",\n        \"border-bottom-right-image\",\n        \"border-bottom-left-image\",\n        \"color\",\n        \"font\",\n        \"font-family\",\n        \"font-size\",\n        \"line-height\",\n        \"font-weight\",\n        \"font-style\",\n        \"font-variant\",\n        \"font-size-adjust\",\n        \"font-stretch\",\n        \"font-feature-settings\",\n        \"letter-spacing\",\n        \"text-rendering\",\n        \"text-align\",\n        \"text-align-last\",\n        \"text-decoration\",\n        \"text-emphasis\",\n        \"text-emphasis-position\",\n        \"text-emphasis-style\",\n        \"text-emphasis-color\",\n        \"text-indent\",\n        \"text-justify\",\n        \"text-outline\",\n        \"text-transform\",\n        \"text-wrap\",\n        \"text-overflow\",\n        \"text-overflow-ellipsis\",\n        \"text-overflow-mode\",\n        \"text-shadow\",\n        \"white-space\",\n        \"word-spacing\",\n        \"word-wrap\",\n        \"word-break\",\n        \"tab-size\",\n        \"hyphens\",\n        \"user-select\",\n        \"fill\",\n        \"stroke\",\n        \"background\",\n        \"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader\",\n        \"background-color\",\n        \"background-image\",\n        \"background-attachment\",\n        \"background-position\",\n        \"background-position-x\",\n        \"background-position-y\",\n        \"background-clip\",\n        \"background-origin\",\n        \"background-size\",\n        \"background-repeat\",\n        \"border-radius\",\n        \"border-top-left-radius\",\n        \"border-top-right-radius\",\n        \"border-bottom-right-radius\",\n        \"border-bottom-left-radius\",\n        \"box-decoration-break\",\n        \"box-shadow\",\n        \"table-layout\",\n        \"caption-side\",\n        \"empty-cells\",\n        \"list-style\",\n        \"list-style-position\",\n        \"list-style-type\",\n        \"list-style-image\",\n        \"quotes\",\n        \"counter-increment\",\n        \"counter-reset\",\n        \"vertical-align\",\n        \"src\",\n        \"opacity\",\n        \"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity\",\n        \"filter\",\n        \"resize\",\n        \"cursor\",\n        \"nav-index\",\n        \"nav-up\",\n        \"nav-right\",\n        \"nav-down\",\n        \"nav-left\",\n        \"transition\",\n        \"transition-delay\",\n        \"transition-timing-function\",\n        \"transition-duration\",\n        \"transition-property\",\n        \"transform\",\n        \"transform-origin\",\n        \"animation\",\n        \"animation-name\",\n        \"animation-duration\",\n        \"animation-play-state\",\n        \"animation-timing-function\",\n        \"animation-delay\",\n        \"animation-iteration-count\",\n        \"animation-direction\",\n        \"animation-fill-mode\",\n        \"pointer-events\",\n        \"unicode-bidi\",\n        \"direction\",\n        \"columns\",\n        \"column-span\",\n        \"column-width\",\n        \"column-count\",\n        \"column-fill\",\n        \"column-gap\",\n        \"column-rule\",\n        \"column-rule-width\",\n        \"column-rule-style\",\n        \"column-rule-color\",\n        \"break-before\",\n        \"break-inside\",\n        \"break-after\",\n        \"page-break-before\",\n        \"page-break-inside\",\n        \"page-break-after\",\n        \"orphans\",\n        \"widows\",\n        \"zoom\",\n        \"max-zoom\",\n        \"min-zoom\",\n        \"user-zoom\",\n        \"orientation\"\n    ] ]\n}\n"
  },
  {
    "path": "assets/css/csscomb.json",
    "content": "{\n    \"remove-empty-rulesets\": true,\n    \"always-semicolon\": true,\n    \"color-case\": \"lower\",\n    \"block-indent\": \"    \",\n    \"color-shorthand\": true,\n    \"element-case\": \"lower\",\n    \"eof-newline\": true,\n    \"leading-zero\": true,\n    \"quotes\": \"double\",\n    \"space-before-colon\": \"\",\n    \"space-after-colon\": \" \",\n    \"space-before-combinator\": \" \",\n    \"space-after-combinator\": \" \",\n    \"space-between-declarations\": \"\\n\",\n    \"space-before-opening-brace\": \" \",\n    \"space-after-opening-brace\": \"\\n\",\n    \"space-after-selector-delimiter\": \"\\n\",\n    \"space-before-selector-delimiter\": \"\",\n    \"space-before-closing-brace\": \"\\n\",\n    \"strip-spaces\": true,\n    \"tab-size\": 4,\n    \"unitless-zero\": true,\n    \"sort-order\": [ [\n        \"content\",\n        \"visibility\",\n        \"position\",\n        \"top\",\n        \"right\",\n        \"bottom\",\n        \"left\",\n        \"z-index\",\n        \"order\",\n        \"flex\",\n        \"flex-grow\",\n        \"flex-shrink\",\n        \"flex-basis\",\n        \"align-self\",\n        \"display\",\n        \"flex-flow\",\n        \"flex-direction\",\n        \"justify-content\",\n        \"align-items\",\n        \"align-content\",\n        \"flex-wrap\",\n        \"flex-order\",\n        \"flex-pack\",\n        \"flex-align\",\n        \"float\",\n        \"clear\",\n        \"box-sizing\",\n        \"width\",\n        \"height\",\n        \"min-width\",\n        \"min-height\",\n        \"max-width\",\n        \"max-height\",\n        \"overflow\",\n        \"overflow-x\",\n        \"overflow-y\",\n        \"clip\",\n        \"margin\",\n        \"margin-top\",\n        \"margin-right\",\n        \"margin-bottom\",\n        \"margin-left\",\n        \"padding\",\n        \"padding-top\",\n        \"padding-right\",\n        \"padding-bottom\",\n        \"padding-left\",\n        \"outline\",\n        \"outline-width\",\n        \"outline-style\",\n        \"outline-color\",\n        \"outline-offset\",\n        \"border\",\n        \"border-spacing\",\n        \"border-collapse\",\n        \"border-width\",\n        \"border-style\",\n        \"border-color\",\n        \"border-top\",\n        \"border-top-width\",\n        \"border-top-style\",\n        \"border-top-color\",\n        \"border-right\",\n        \"border-right-width\",\n        \"border-right-style\",\n        \"border-right-color\",\n        \"border-bottom\",\n        \"border-bottom-width\",\n        \"border-bottom-style\",\n        \"border-bottom-color\",\n        \"border-left\",\n        \"border-left-width\",\n        \"border-left-style\",\n        \"border-left-color\",\n        \"border-image\",\n        \"border-image-source\",\n        \"border-image-slice\",\n        \"border-image-width\",\n        \"border-image-outset\",\n        \"border-image-repeat\",\n        \"border-top-image\",\n        \"border-right-image\",\n        \"border-bottom-image\",\n        \"border-left-image\",\n        \"border-corner-image\",\n        \"border-top-left-image\",\n        \"border-top-right-image\",\n        \"border-bottom-right-image\",\n        \"border-bottom-left-image\",\n        \"table-layout\",\n        \"caption-side\",\n        \"empty-cells\",\n        \"list-style\",\n        \"list-style-position\",\n        \"list-style-type\",\n        \"list-style-image\",\n        \"quotes\",\n        \"counter-increment\",\n        \"counter-reset\",\n        \"vertical-align\",\n        \"stroke\",\n        \"fill\",\n        \"stroke-width\",\n        \"stroke-opacity\",\n        \"color\",\n        \"font\",\n        \"font-family\",\n        \"font-size\",\n        \"line-height\",\n        \"font-weight\",\n        \"font-style\",\n        \"font-variant\",\n        \"font-size-adjust\",\n        \"font-stretch\",\n        \"text-rendering\",\n        \"font-feature-settings\",\n        \"letter-spacing\",\n        \"hyphens\",\n        \"text-align\",\n        \"text-align-last\",\n        \"text-decoration\",\n        \"text-emphasis\",\n        \"text-emphasis-position\",\n        \"text-emphasis-style\",\n        \"text-emphasis-color\",\n        \"text-indent\",\n        \"text-justify\",\n        \"text-outline\",\n        \"text-transform\",\n        \"text-wrap\",\n        \"text-overflow\",\n        \"text-overflow-ellipsis\",\n        \"text-overflow-mode\",\n        \"text-shadow\",\n        \"white-space\",\n        \"word-spacing\",\n        \"word-wrap\",\n        \"word-break\",\n        \"tab-size\",\n        \"user-select\",\n        \"src\",\n        \"resize\",\n        \"cursor\",\n        \"nav-index\",\n        \"nav-up\",\n        \"nav-right\",\n        \"nav-down\",\n        \"nav-left\",\n        \"background\",\n        \"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader\",\n        \"background-color\",\n        \"background-image\",\n        \"background-size\",\n        \"background-attachment\",\n        \"background-position\",\n        \"background-position-x\",\n        \"background-position-y\",\n        \"background-clip\",\n        \"background-origin\",\n        \"background-repeat\",\n        \"border-radius\",\n        \"border-top-left-radius\",\n        \"border-top-right-radius\",\n        \"border-bottom-right-radius\",\n        \"border-bottom-left-radius\",\n        \"box-decoration-break\",\n        \"box-shadow\",\n        \"opacity\",\n        \"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity\",\n        \"filter\",\n        \"transition\",\n        \"transition-delay\",\n        \"transition-timing-function\",\n        \"transition-duration\",\n        \"transition-property\",\n        \"transform\",\n        \"transform-origin\",\n        \"animation\",\n        \"animation-name\",\n        \"animation-duration\",\n        \"animation-play-state\",\n        \"animation-timing-function\",\n        \"animation-delay\",\n        \"animation-iteration-count\",\n        \"animation-direction\",\n        \"animation-fill-mode\",\n        \"pointer-events\",\n        \"unicode-bidi\",\n        \"direction\",\n        \"columns\",\n        \"column-span\",\n        \"column-width\",\n        \"column-count\",\n        \"column-fill\",\n        \"column-gap\",\n        \"column-rule\",\n        \"column-rule-width\",\n        \"column-rule-style\",\n        \"column-rule-color\",\n        \"break-before\",\n        \"break-inside\",\n        \"break-after\",\n        \"page-break-before\",\n        \"page-break-inside\",\n        \"page-break-after\",\n        \"orphans\",\n        \"widows\",\n        \"zoom\",\n        \"max-zoom\",\n        \"min-zoom\",\n        \"user-zoom\",\n        \"orientation\",\n        \"-webkit-overflow-scrolling\",\n        \"-ms-overflow-scrolling\"\n    ] ]\n}\n"
  },
  {
    "path": "assets/css/global.css",
    "content": "/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n    /* Colours */\n    --blue: var(--ghost-accent-color, #3eb0ef);\n    --green: #a4d037;\n    --purple: #ad26b4;\n    --yellow: #fecd35;\n    --red: #f05230;\n    --darkgrey: #15171A;\n    --midgrey: #738a94;\n    --lightgrey: #c5d2d9;\n    --whitegrey: #e5eff5;\n    --pink: #fa3a57;\n    --brown: #a3821a;\n    --darkmode: color(var(--darkgrey) l(+2%));\n}\n\n/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font: inherit;\n    font-size: 100%;\n    vertical-align: baseline;\n}\nbody {\n    line-height: 1;\n}\nol,\nul {\n    list-style: none;\n}\nblockquote,\nq {\n    quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n    content: \"\";\n    content: none;\n}\ntable {\n    border-spacing: 0;\n    border-collapse: collapse;\n}\nimg {\n    max-width: 100%;\n    height: auto;\n}\nhtml {\n    box-sizing: border-box;\n    font-family: sans-serif;\n\n    -ms-text-size-adjust: 100%;\n    -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n    box-sizing: inherit;\n}\na {\n    background-color: transparent;\n}\na:active,\na:hover {\n    outline: 0;\n}\nb,\nstrong {\n    font-weight: bold;\n}\ni,\nem,\ndfn {\n    font-style: italic;\n}\nh1 {\n    margin: 0.67em 0;\n    font-size: 2em;\n}\nsmall {\n    font-size: 80%;\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}\nimg {\n    border: 0;\n}\nsvg:not(:root) {\n    overflow: hidden;\n}\nmark {\n    background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n    font-family: monospace, monospace;\n    font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n    margin: 0; /* 3 */\n    color: inherit; /* 1 */\n    font: inherit; /* 2 */\n}\nbutton {\n    overflow: visible;\n    border: none;\n}\nbutton,\nselect {\n    text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    cursor: pointer; /* 3 */\n\n    -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n    cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n    padding: 0;\n    border: 0;\n}\ninput {\n    line-height: normal;\n}\ninput:focus {\n    outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n    box-sizing: border-box; /* 1 */\n    padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n}\ninput[type=\"search\"] {\n    box-sizing: content-box; /* 2 */\n\n    -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\n}\nlegend {\n    padding: 0; /* 2 */\n    border: 0; /* 1 */\n}\ntextarea {\n    overflow: auto;\n}\ntable {\n    border-spacing: 0;\n    border-collapse: collapse;\n}\ntd,\nth {\n    padding: 0;\n}\n\n/* ==========================================================================\n   Base styles: opinionated defaults\n   ========================================================================== */\n\nhtml {\n    overflow-x: hidden;\n    overflow-y: scroll;\n    font-size: 62.5%;\n\n    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n    overflow-x: hidden;\n    color: color(var(--midgrey) l(-30%));\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    font-size: 1.6rem;\n    line-height: 1.6em;\n    font-weight: 400;\n    font-style: normal;\n    letter-spacing: 0;\n    text-rendering: optimizeLegibility;\n    background: #fff;\n\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n    text-shadow: none;\n    background: var(--blue);\n    color: #fff;\n}\n\nhr {\n    position: relative;\n    display: block;\n    width: 100%;\n    margin: 2.5em 0 3.5em;\n    padding: 0;\n    height: 1px;\n    border: 0;\n    border-top: 1px solid color(var(--lightgrey) l(+10%));\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n    vertical-align: middle;\n}\n\nfieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n}\n\ntextarea {\n    resize: vertical;\n}\n\np,\nul,\nol,\ndl,\nblockquote {\n    margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n    padding-left: 1.3em;\n    padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n    margin: 0.5em 0 1em;\n}\n\nul {\n    list-style: disc;\n}\n\nol {\n    list-style: decimal;\n}\n\nul,\nol {\n    max-width: 100%;\n}\n\nli {\n    margin: 0.5em 0;\n    padding-left: 0.3em;\n    line-height: 1.6em;\n}\n\ndt {\n    float: left;\n    margin: 0 20px 0 0;\n    width: 120px;\n    color: var(--darkgrey);\n    font-weight: 500;\n    text-align: right;\n}\n\ndd {\n    margin: 0 0 5px 0;\n    text-align: left;\n}\n\nblockquote {\n    margin: 1.5em 0;\n    padding: 0 1.6em 0 1.6em;\n    border-left: var(--whitegrey) 0.5em solid;\n}\n\nblockquote p {\n    margin: 0.8em 0;\n    font-size: 1.2em;\n    font-weight: 300;\n}\n\nblockquote small {\n    display: inline-block;\n    margin: 0.8em 0 0.8em 1.5em;\n    font-size: 0.9em;\n    opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n    content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n    font-weight: bold;\n}\nblockquote cite a {\n    font-weight: normal;\n}\n\na {\n    color: var(--blue);\n    text-decoration: none;\n}\n\na:hover {\n    text-decoration: underline;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n    margin-top: 0;\n    line-height: 1.15;\n    font-weight: 600;\n    text-rendering: optimizeLegibility;\n}\n\nh1 {\n    margin: 0 0 0.5em 0;\n    font-size: 5.5rem;\n    font-weight: 600;\n}\n@media (max-width: 500px) {\n    h1 {\n        font-size: 2.2rem;\n    }\n}\n\nh2 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 2.2rem;\n}\n@media (max-width: 500px) {\n    h2 {\n        font-size: 1.8rem;\n    }\n}\n\nh3 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 1.8rem;\n    font-weight: 500;\n}\n@media (max-width: 500px) {\n    h3 {\n        font-size: 1.7rem;\n    }\n}\n\nh4 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 1.6rem;\n    font-weight: 500;\n}\n\nh5 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 1.4rem;\n    font-weight: 500;\n}\n\nh6 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 1.4rem;\n    font-weight: 500;\n}\n"
  },
  {
    "path": "assets/css/screen.css",
    "content": "/* 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.  Global Styles\n2.  Layout\n3.  Special Templates\n4.  Site Header\n  4.1 Home header\n  4.2 Archive header\n5.  Site Navigation\n6.  Post Feed\n7.  Single Post\n  7.1. Post Byline\n  7.2. Members Subscribe Form\n  7.3. Comments\n  7.4. Related Posts\n  7.5. Koenig Styles\n8.  Author Template\n9.  Error Template\n10. Subscribe Overlay\n11. Site Footer\n12. Members\n13. Dark Mode\n\n*/\n\n\n/* 1. Global - Set up the things\n/* ---------------------------------------------------------- */\n@import \"global.css\";\n\nbody {\n    background: #fff;\n}\n\n.img {\n    display: block;\n    width: 100%;\n    height: 100%;\n    background-position: center center;\n    background-size: cover;\n    border-radius: 100%;\n}\n\n.hidden {\n    visibility: hidden;\n    position: absolute;\n    text-indent: -9999px;\n}\n\n\n/* 2. Layout - Page building blocks\n/* ---------------------------------------------------------- */\n\n.site-wrapper {\n    display: flex;\n    flex-direction: column;\n    min-height: 100vh;\n}\n\n.site-main {\n    z-index: 100;\n    flex-grow: 1;\n}\n\n/* Full width page blocks */\n.outer {\n    position: relative;\n    padding: 0 5vw;\n}\n\n/* Centered content container blocks */\n.inner {\n    margin: 0 auto;\n    max-width: 1040px;\n    width: 100%;\n}\n\n/* Usage:\n\n<div class=\"outer\">\n    <div class=\"inner\">\n        Centered content\n    </div>\n</div>\n\n*/\n\n/* 3. Special Template Styles\n/* ---------------------------------------------------------- */\n\n@media (min-width: 900px) {\n    .home-template .post-feed,\n    .tag-template .post-feed,\n    .author-template .post-feed {\n        padding: 40px 0 5vw;\n        border-top-left-radius: 3px;\n        border-top-right-radius: 3px;\n    }\n\n    .home-template .site-nav {\n        position: relative;\n    }\n}\n\n\n/* 4. Site Header\n/* ---------------------------------------------------------- */\n\n.site-header {\n    height: 64px;\n}\n\n.site-header-background {\n    position: relative;\n    margin-top: 64px;\n    padding-bottom: 12px;\n    color: #fff;\n    background: color(var(--darkgrey) l(-5%)) no-repeat center center;\n    background-size: cover;\n}\n\n.site-header-background:before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 10;\n    display: block;\n    background: rgba(0,0,0,0.18);\n}\n\n.site-header-background:after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: auto;\n    left: 0;\n    z-index: 10;\n    display: block;\n    height: 140px;\n    background: linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0));\n}\n\n.site-header-background.no-image:before,\n.site-header-background.no-image:after {\n    display: none;\n}\n\n.site-header-content {\n    z-index: 100;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    padding: 6vw 3vw;\n    min-height: 200px;\n    max-height: 340px;\n}\n\n.site-title {\n    z-index: 10;\n    margin: 0 0 0 -2px;\n    padding: 0;\n    font-size: 5.0rem;\n    line-height: 1em;\n    font-weight: 600;\n}\n\n.site-logo {\n    max-height: 55px;\n}\n\n.site-description {\n    z-index: 10;\n    margin: 0;\n    padding: 5px 0;\n    font-size: 2.1rem;\n    line-height: 1.4em;\n    font-weight: 400;\n    opacity: 0.8;\n}\n\n/* 4.1 Home header\n/* ---------------------------------------------------------- */\n\n.site-home-header {\n    z-index: 1000;\n}\n\n.site-home-header .site-header-background {\n    margin-top: 0;\n}\n\n.site-home-header .site-header-content {\n    padding: 5vw 3vw 6vw;\n}\n\n.site-home-header .site-title {\n    font-size: 5.5rem;\n    text-align: center;\n}\n\n.site-home-header .site-description {\n    font-size: 2.2rem;\n    font-weight: 300;\n    text-align: center;\n}\n\n\n/* 4.2 Archive header (tag and author post lists)\n/* ---------------------------------------------------------- */\n\n.site-archive-header .site-header-content {\n    position: relative;\n    align-items: stretch;\n    padding: 12vw 0 20px;\n    min-height: 200px;\n    max-height: 600px;\n}\n\n.site-archive-header .no-image {\n    padding-top: 0;\n    padding-bottom: 0;\n    color: var(--darkgrey);\n    background: #fff;\n    opacity: 1.0;\n}\n\n.site-archive-header .no-image .site-description {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n\n.site-archive-header .no-image .site-header-content {\n    padding: 5vw 0 10px;\n    border-bottom: 1px solid color(var(--lightgrey) l(+12%));\n}\n\n\n/* Special header styles for smaller screens */\n\n@media (max-width: 900px) {\n    .site-header-content {\n        padding-bottom: 9vw;\n    }\n}\n\n@media (max-width: 500px) {\n    .site-home-header .site-title {\n        font-size: 4.2rem;\n    }\n\n    .site-home-header .site-description {\n        font-size: 1.8rem;\n    }\n\n    .site-archive-header .site-header-content {\n        flex-direction: column;\n        align-items: center;\n        min-height: unset;\n    }\n\n    .site-archive-header .site-title {\n        font-size: 4.2rem;\n        text-align: center;\n    }\n\n    .site-archive-header .no-image .site-header-content {\n        padding: 12vw 0 20px;\n    }\n}\n\n\n/* 5. Site Navigation\n/* ---------------------------------------------------------- */\n\n.site-nav-main {\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 1000;\n    background: color(var(--darkgrey) l(-5%));\n}\n\n.site-nav {\n    position: relative;\n    z-index: 100;\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-start;\n    height: 64px;\n    font-size: 1.3rem;\n}\n\n.site-nav-left {\n    position: relative;\n    flex: 1 0 auto;\n    display: flex;\n    align-items: flex-start;\n    height: 64px;\n    overflow-y: hidden;\n}\n\n.site-nav-left-content {\n    flex: 1 0 auto;\n    display: flex;\n    align-items: center;\n    overflow-x: auto;\n    overflow-y: hidden;\n    -webkit-overflow-scrolling: touch;\n    margin-right: 10px;\n    padding: 10px 0 80px;\n    font-weight: 500;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n    white-space: nowrap;\n\n    -ms-overflow-scrolling: touch;\n}\n\n@media (max-width: 700px) {\n    .site-header-background:not(.responsive-header-img) .site-nav-left:after,\n    .site-nav-main .site-nav-left:after {\n        content: \"\";\n        position: absolute;\n        top: 0;\n        z-index: 1000;\n        width: 40px;\n        height: 100%;\n    }\n\n    .site-header-background:not(.responsive-header-img) .site-nav-left:after,\n    .site-nav-main .site-nav-left:after {\n        right: 10px;\n        background: linear-gradient(to right, color(var(--darkgrey) l(-5%) a(0)) 0%,color(var(--darkgrey) l(-5%)) 100%);\n    }\n\n    .nav li:last-of-type {\n        padding-right: 20px;\n    }\n}\n\n/* Site Nav Hack Explanation (above):\n\nWhat's happening above is .site-nav-left is set to overflow-x and allow sideways scrolling, so that when there isn't enough space for all nav items (either due to lots of nav items, or a small viewport), you can still scroll side-to-side to reach them. Also, there is a small gradient on the left and right side covering the menu so that the menu goes offscreen smoothly.\n\nThe knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px of padding-bottom and a 40px fixed height parent (.site-nav) hides that entirely. Slightly hacky code. But nice clean end-result.\n\n*/\n\n.site-nav-logo {\n    position: relative;\n    z-index: 100;\n    flex-shrink: 0;\n    display: inline-block;\n    margin-right: 32px;\n    padding: 12px 0;\n    color: #fff;\n    font-size: 1.7rem;\n    line-height: 1.8rem;\n    font-weight: bold;\n    letter-spacing: -0.5px;\n    text-transform: none;\n}\n\n.site-nav-logo:hover {\n    text-decoration: none;\n}\n\n.site-nav-logo img {\n    display: block;\n    width: auto;\n    height: 21px;\n}\n\n.site-home-header .site-nav-logo {\n    display: none;\n}\n\n.site-nav-content {\n    position: relative;\n    align-self: flex-start;\n}\n\n.nav {\n    position: absolute;\n    z-index: 1000;\n    display: flex;\n    margin: 0 0 0 -12px;\n    padding: 0;\n    list-style: none;\n    transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1);\n}\n\n.nav li {\n    display: block;\n    margin: 0;\n    padding: 0;\n}\n\n.nav li a {\n    position: relative;\n    display: block;\n    padding: 12px 12px;\n    color: #fff;\n    opacity: 0.8;\n    transition: opacity 0.35s ease-in-out;\n}\n\n.nav li a:hover {\n    text-decoration: none;\n    opacity: 1;\n}\n\n.nav li a:before {\n    content: \"\";\n    position: absolute;\n    right: 100%;\n    bottom: 8px;\n    left: 12px;\n    height: 1px;\n    background: #fff;\n    opacity: 0.25;\n    transition: all 0.35s ease-in-out;\n}\n\n.nav li a:hover:before {\n    right: 12px;\n    opacity: 0.5;\n}\n\n.nav-post-title-active .nav {\n    visibility: hidden;\n    opacity: 0;\n    transform: translateY(-175%);\n}\n\n.nav-post-title {\n    visibility: hidden;\n    position: absolute;\n    top: 9px;\n    color: #fff;\n    font-size: 1.7rem;\n    font-weight: 400;\n    text-transform: none;\n    opacity: 0;\n    transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1);\n    transform: translateY(175%);\n}\n\n.nav-post-title.dash {\n    left: -25px;\n}\n\n.nav-post-title.dash:before {\n    content: \"– \";\n    opacity: 0.5;\n}\n\n.nav-post-title-active .nav-post-title {\n    visibility: visible;\n    opacity: 1;\n    transform: translateY(0);\n}\n\n.site-nav-right {\n    flex-shrink: 0;\n    display: flex;\n    align-items: center;\n    padding: 9px 0 10px;\n    height: 64px;\n    font-size: 1.4rem;\n    line-height: 1.0em;\n}\n\n.site-nav-right a {\n    color: #fff;\n}\n\n.button.small.signout-link {\n    color: #fff;\n    box-shadow: #fff 0 0 0 1px inset;\n    opacity: 0.8;\n}\n\n.button.small.signout-link:hover {\n    opacity: 1;\n}\n\n.account-menu {\n    position: relative;\n}\n\n.account-menu-avatar {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 1px;\n    width: 32px;\n    height: 32px;\n    background: color(var(--lightgrey) l(+10%));\n    border-radius: 100%;\n    cursor: pointer;\n}\n\n.account-menu-avatar img {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    border-radius: 100%;\n}\n\n.account-menu ul {\n    visibility: hidden;\n    position: absolute;\n    top: 43px;\n    right: -8px;\n    z-index: 9998;\n    padding: 8px 0;\n    min-width: 240px;\n    background: #fff;\n    border-radius: 3px;\n    box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.06) 1px 3px 8px;\n    list-style: none;\n    opacity: 0;\n    transition: all 0.3s cubic-bezier(0.4,0.01,0.165,0.99), opacity 0.2s cubic-bezier(0.4,0.01,0.165,0.99);\n    transform: translateY(-6px) scale(0.95);\n    transform-origin: top right;\n    pointer-events: none;\n}\n\n.account-menu-avatar.active + ul {\n    visibility: visible;\n    opacity: 1.0;\n    transform: translateY(0) scale(1);\n    pointer-events: all;\n}\n\n.account-menu ul:before {\n    content: \"\";\n    position: absolute;\n    top: -8px;\n    right: 14px;\n    z-index: 9998;\n    width: 0;\n    height: 0;\n    border-width: 0 10px 10px;\n    border-style: solid;\n    border-color: transparent transparent #fff;\n}\n\n.account-menu ul li {\n    margin: 0;\n    padding: 0;\n}\n\n.account-menu .account-info {\n    display: flex;\n    flex-direction: column;\n    margin: 0 0 6px;\n    padding: 4px 20px 12px;\n    border-bottom: 1px solid var(--whitegrey);\n    color: var(--midgrey);\n}\n\n.account-info .account-email {\n    display: inline-block;\n    overflow-x: hidden;\n    margin-top: -4px;\n    max-width: 200px;\n    color: color(var(--midgrey) l(-30%));\n    font-weight: 600;\n    text-overflow: ellipsis;\n}\n\n.account-menu ul a {\n    display: block;\n    padding: 6px 20px;\n    color: color(var(--midgrey) l(-30%));\n}\n\n.account-menu ul a:hover {\n    color: var(--blue);\n    text-decoration: none;\n}\n\n\n/* Special behaviors for home navigation */\n\n.home-template .site-nav-main {\n    z-index: 100;\n}\n\n.home-template .site-nav-main .site-nav {\n    opacity: 0;\n    transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;\n}\n\n.home-template .site-nav-main .fixed-nav-active {\n    opacity: 1;\n    transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.05s;\n}\n\n@media (max-width: 700px) {\n    .site-home-header .site-nav {\n        margin-left: -5vw;\n    }\n\n    .site-nav-main {\n        padding-right: 0;\n        padding-left: 0;\n    }\n\n    .site-nav-left {\n        margin-right: 0;\n        padding-left: 5vw;\n    }\n\n    .site-nav-main .site-nav-right {\n        padding: 9px 20px 10px 5px;\n    }\n}\n\n\n/* 6. Post Feed\n/* ---------------------------------------------------------- */\n\n.posts {\n    overflow-x: hidden;\n}\n\n.post-feed {\n    position: relative;\n    display: flex;\n    flex-wrap: wrap;\n    margin: 0 -20px;\n    padding: 50px 0 0;\n    background: #fff;\n}\n\n.post-card {\n    position: relative;\n    flex: 1 1 301px;\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    margin: 0 0 40px;\n    padding: 0 20px 40px;\n    min-height: 220px;\n    border-bottom: 1px solid color(var(--lightgrey) l(+12%));\n    background-size: cover;\n}\n\n.post-card-image-link {\n    position: relative;\n    display: block;\n    overflow: hidden;\n    border-radius: 3px;\n}\n\n.post-card-image {\n    width: 100%;\n    height: 200px;\n    background: var(--lightgrey) no-repeat center center;\n\n    object-fit: cover;\n}\n\n.post-card-content-link {\n    position: relative;\n    display: block;\n    color: var(--darkgrey);\n}\n\n.post-card-content-link:hover {\n    text-decoration: none;\n}\n\n.post-card-header {\n    margin: 15px 0 0;\n}\n\n.post-feed .no-image .post-card-content-link {\n    padding: 0;\n}\n\n.no-image .post-card-header {\n    margin-top: 0;\n}\n\n.post-card-primary-tag {\n    color: var(--blue);\n    font-size: 1.2rem;\n    font-weight: 500;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n}\n\n.post-card-title {\n    margin: 0 0 0.4em;\n    line-height: 1.15em;\n    transition: color 0.2s ease-in-out;\n}\n\n.no-image .post-card-title {\n    margin-top: 0;\n}\n\n.post-card-content {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n}\n\n.post-card-excerpt {\n    max-width: 56em;\n    color: var(--midgrey);\n    font-family: Georgia, serif;\n}\n\n.post-card-excerpt p {\n    margin-bottom: 1em;\n}\n\n.post-card-meta {\n    display: flex;\n    align-items: flex-start;\n    padding: 0;\n}\n\n.author-profile-image,\n.avatar-wrapper {\n    display: block;\n    width: 100%;\n    height: 100%;\n    background: color(var(--lightgrey) l(+10%));\n    border-radius: 100%;\n\n    object-fit: cover;\n}\n\n.post-card-meta .profile-image-wrapper,\n.post-card-meta .avatar-wrapper {\n    position: relative;\n}\n\n.author-list {\n    display: flex;\n    flex-wrap: wrap;\n    margin: 0 0 0 4px;\n    padding: 0;\n    list-style: none;\n}\n\n.author-list-item {\n    position: relative;\n    flex-shrink: 0;\n    margin: 0;\n    padding: 0;\n}\n\n.static-avatar {\n    display: block;\n    overflow: hidden;\n    margin: 0 0 0 -6px;\n    width: 34px;\n    height: 34px;\n    border: #fff 2px solid;\n    border-radius: 100%;\n}\n\n.author-name-tooltip {\n    position: absolute;\n    bottom: 105%;\n    z-index: 999;\n    display: block;\n    padding: 2px 8px;\n    color: white;\n    font-size: 1.2rem;\n    letter-spacing: 0.2px;\n    white-space: nowrap;\n    background: var(--darkgrey);\n    border-radius: 3px;\n    box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px;\n    opacity: 0;\n    transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99);\n    transform: translateY(6px);\n    pointer-events: none;\n}\n\n.author-list-item:hover .author-name-tooltip {\n    opacity: 1.0;\n    transform: translateY(0px);\n}\n\n@media (max-width: 700px) {\n    .author-name-tooltip {\n        display: none;\n    }\n}\n\n.post-card-byline-content {\n    flex: 1 1 50%;\n    display: flex;\n    flex-direction: column;\n    margin: 2px 0 0 6px;\n    color: color(var(--midgrey) l(+10%));\n    font-size: 1.2rem;\n    line-height: 1.4em;\n    font-weight: 400;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n}\n\n.post-card-byline-content span {\n    margin: 0;\n}\n\n.post-card-byline-content a {\n    color: color(var(--darkgrey) l(+20%));\n    font-weight: 600;\n}\n\n.post-card-byline-date {\n    font-size: 1.2rem;\n}\n\n.post-card-byline-date .bull {\n    display: inline-block;\n    margin: 0 4px;\n    opacity: 0.6;\n}\n\n.single-author-byline {\n    display: flex;\n    flex-direction: column;\n    margin-left: 5px;\n    color: color(var(--midgrey) l(-10%));\n    font-size: 1.3rem;\n    line-height: 1.4em;\n    font-weight: 500;\n}\n\n.single-author {\n    display: flex;\n    align-items: center;\n}\n\n.single-author .static-avatar {\n    margin-left: -2px;\n}\n\n.single-author-name {\n    display: inline-block;\n}\n\n/* Special Styling for home page grid (below):\n\nThe first post in the list is styled to be bigger than the others and take over\nthe full width of the grid to give it more emphasis. Wrapped in a media query to\nmake sure this only happens on large viewports / desktop-ish devices.\n\n */\n\n@media (min-width: 795px) {\n    .post-card-large {\n        flex: 1 1 100%;\n        flex-direction: row;\n        padding-bottom: 40px;\n        min-height: 280px;\n        border-top: 0;\n    }\n\n    .post-card-large:hover {\n        border-bottom-color: color(var(--lightgrey) l(+10%));\n    }\n\n    .post-card-large:not(.no-image) .post-card-header {\n        margin-top: 0;\n    }\n\n    .post-card-large .post-card-image-link {\n        position: relative;\n        flex: 1 1 auto;\n        margin-bottom: 0;\n        min-height: 380px;\n    }\n\n    .post-card-large .post-card-image {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n    }\n\n    .post-card-large .post-card-content {\n        flex: 0 1 361px;\n        justify-content: center;\n    }\n\n    .post-card-large .post-card-title {\n        margin-top: 0;\n        font-size: 3.2rem;\n    }\n\n    .post-card-large .post-card-content-link {\n        padding: 0 0 0 40px;\n    }\n\n    .post-card-large .post-card-meta {\n        padding: 0 0 0 40px;\n    }\n\n    .post-card-large .post-card-excerpt p {\n        margin-bottom: 1.5em;\n        font-size: 1.8rem;\n        line-height: 1.5em;\n    }\n}\n\n\n/* Adjust some margins for smaller screens */\n@media (max-width: 1170px) {\n    .post-card {\n        margin-bottom: 5vw;\n    }\n}\n\n@media (max-width: 650px) {\n    .post-feed {\n        padding-top: 5vw;\n    }\n\n    .post-card {\n        margin-bottom: 5vw;\n    }\n}\n\n@media (max-width: 500px) {\n    .post-card-title {\n        font-size: 1.9rem;\n    }\n\n    .post-card-excerpt {\n        font-size: 1.6rem;\n    }\n}\n\n\n/* 7. Single Post\n/* ---------------------------------------------------------- */\n\n.post-template .site-main,\n.page-template .site-main {\n    padding-bottom: 4vw;\n    background: #fff;\n}\n\n.post-full-header {\n    position: relative;\n    margin: 0 auto;\n    padding: 70px 170px 50px;\n    border-top-left-radius: 3px;\n    border-top-right-radius: 3px;\n}\n\n.post-full-tags {\n    display: flex;\n    justify-content: flex-start;\n    align-items: center;\n    color: var(--midgrey);\n    font-size: 1.3rem;\n    line-height: 1.4em;\n    font-weight: 600;\n    text-transform: uppercase;\n}\n\n.post-full-meta-date {\n    color: var(--midgrey);\n    font-size: 1.2rem;\n    font-weight: 400;\n}\n\n@media (max-width: 1170px) {\n    .post-full-header {\n        padding: 60px 11vw 50px;\n    }\n}\n\n@media (max-width: 800px) {\n    .post-full-header {\n        padding-right: 5vw;\n        padding-left: 5vw;\n    }\n}\n\n@media (max-width: 500px) {\n    .post-full-header {\n        padding: 20px 0 35px;\n    }\n}\n\n.post-full-title {\n    margin: 0 0 0.2em;\n    color: color(var(--darkgrey) l(-5%));\n}\n\n.post-full-custom-excerpt {\n    margin: 20px 0 0;\n    color: var(--midgrey);\n    font-family: Georgia, serif;\n    font-size: 2.3rem;\n    line-height: 1.4em;\n    font-weight: 300;\n}\n\n.date-divider {\n    display: inline-block;\n    margin: 0 6px 1px;\n    font-weight: 300;\n}\n\n.post-full-image {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    overflow: hidden;\n    margin: 25px 0 50px;\n    border-radius: 3px;\n}\n\n.post-full-image img {\n    max-width: 1040px;\n    width: 100%;\n    height: auto;\n}\n\n.post-full-content {\n    position: relative;\n    margin: 0 auto;\n    padding: 0 170px 5vw;\n    min-height: 230px;\n    font-family: Georgia, serif;\n    font-size: 2.0rem;\n    line-height: 1.6em;\n    background: #fff;\n}\n\n@media (max-width: 1170px) {\n    .post-full-content {\n        padding: 0 11vw;\n    }\n}\n@media (max-width: 800px) {\n    .post-full-content {\n        padding: 0 5vw;\n        font-size: 1.8rem;\n    }\n}\n@media (max-width: 500px) {\n    .post-full-custom-excerpt {\n        font-size: 1.9rem;\n        line-height: 1.5em;\n    }\n}\n\n.no-image .post-full-content {\n    padding-top: 0;\n}\n\n.no-image .post-full-content:before,\n.no-image .post-full-content:after {\n    display: none;\n}\n\n.post-full-content h1,\n.post-full-content h2,\n.post-full-content h3,\n.post-full-content h4,\n.post-full-content h5,\n.post-full-content h6,\n.post-full-content p,\n.post-full-content ul,\n.post-full-content ol,\n.post-full-content dl,\n.post-full-content pre,\n.post-full-content blockquote,\n.post-full-comments,\n.footnotes {\n    margin: 0 0 1.5em 0;\n    min-width: 100%;\n}\n@media (max-width: 500px) {\n    .post-full-content p,\n    .post-full-content ul,\n    .post-full-content ol,\n    .post-full-content dl,\n    .post-full-content pre,\n    .post-full-comments,\n    .footnotes {\n        margin-bottom: 1.28em;\n    }\n}\n\n.post-full-content li {\n    word-break: break-word;\n}\n\n.post-full-content li p {\n    margin: 0;\n}\n\n.post-full-content a {\n    color: var(--darkgrey);\n    word-break: break-word;\n    box-shadow: var(--darkgrey) 0 -1px 0 inset;\n    transition: all 0.2s ease-in-out;\n}\n\n.post-full-content a:hover {\n    color: var(--blue);\n    text-decoration: none;\n    box-shadow: var(--blue) 0 -1px 0 inset;\n}\n\n.post-full-content strong,\n.post-full-content em {\n    color: color(var(--darkgrey) l(-5%));\n}\n\n.post-full-content small {\n    display: inline-block;\n    line-height: 1.6em;\n}\n\n.post-full-content li:first-child {\n    margin-top: 0;\n}\n\n.post-full-content img,\n.post-full-content video {\n    display: block;\n    margin: 1.5em auto;\n    max-width: 1040px;\n    height: auto;\n}\n@media (max-width: 1040px) {\n    .post-full-content img,\n    .post-full-content video {\n        width: 100%;\n    }\n}\n\n\n/* Full bleed images (#full)\nSuper neat trick courtesy of @JoelDrapper\n\nUsage (In Ghost edtior):\n\n![img](/some/image.jpg#full)\n\n*/\n.post-full-content img[src$=\"#full\"] {\n    max-width: none;\n    width: 100vw;\n}\n\n\n/* Image captions\n\nUsage (In Ghost editor):\n\n![img](/some/image.jpg)\n<small>Your image caption</small>\n\n*/\n.post-full-content img + br + small {\n    display: block;\n    margin-top: -3em;\n    margin-bottom: 1.5em;\n    text-align: center;\n}\n\n\n/* Override third party iframe styles */\n.post-full-content iframe {\n    margin: 0 auto !important;\n}\n\n.post-full-content blockquote {\n    margin: 0 0 1.5em;\n    padding: 0 1.5em;\n    border-left: #3eb0ef 3px solid;\n}\n@media (max-width: 500px) {\n    .post-full-content blockquote {\n        padding: 0 1.3em;\n    }\n}\n\n.post-full-content blockquote p {\n    margin: 0 0 1em 0;\n    color: inherit;\n    font-size: inherit;\n    line-height: inherit;\n    font-style: italic;\n}\n\n.post-full-content blockquote p:last-child {\n    margin-bottom: 0;\n}\n\n.post-full-content code {\n    padding: 0 5px 2px;\n    font-size: 0.8em;\n    line-height: 1em;\n    font-weight: 400!important;\n    background: var(--whitegrey);\n    border-radius: 3px;\n}\n\n.post-full-content p code {\n    word-break: break-all;\n}\n\n.post-full-content pre {\n    overflow-x: auto;\n    margin: 1.5em 0 3em;\n    padding: 20px;\n    max-width: 100%;\n    border: color(var(--darkgrey) l(-10%)) 1px solid;\n    color: var(--whitegrey);\n    font-size: 1.4rem;\n    line-height: 1.5em;\n    background: color(var(--darkgrey) l(-3%));\n    border-radius: 5px;\n}\n\n.post-full-content pre ::selection {\n    color: color(var(--midgrey) l(-25%));\n}\n\n.post-full-content pre code {\n    padding: 0;\n    font-size: inherit;\n    line-height: inherit;\n    background: transparent;\n}\n\n.post-full-content pre code :not(span) {\n    color: inherit;\n}\n\n.post-full-content .fluid-width-video-wrapper {\n    margin: 1.5em 0 3em;\n}\n\n.post-full-content hr {\n    margin: 2em 0;\n}\n\n.post-full-content hr:after {\n    content: \"\";\n    position: absolute;\n    top: -15px;\n    left: 50%;\n    display: block;\n    margin-left: -10px;\n    width: 1px;\n    height: 30px;\n    background: color(var(--lightgrey) l(+10%));\n    box-shadow: #fff 0 0 0 5px;\n    transform: rotate(45deg);\n}\n\n.post-full-content hr + p {\n    margin-top: 1.2em;\n}\n\n.post-full-content h1,\n.post-full-content h2,\n.post-full-content h3,\n.post-full-content h4,\n.post-full-content h5,\n.post-full-content h6 {\n    color: color(var(--darkgrey) l(-5%));\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n}\n\n.post-full-content h1 {\n    margin: 0.5em 0 0.4em;\n    font-size: 4.2rem;\n    line-height: 1.25em;\n    font-weight: 600;\n}\n.post-full-content p + h1 {\n    margin-top: 0.8em;\n}\n@media (max-width: 800px) {\n    .post-full-content h1 {\n        font-size: 3.2rem;\n        line-height: 1.25em;\n    }\n}\n\n.post-full-content h2 {\n    margin: 0.5em 0 0.4em;\n    font-size: 3.2rem;\n    line-height: 1.25em;\n    font-weight: 600;\n}\n.post-full-content p + h2 {\n    margin-top: 0.8em;\n}\n@media (max-width: 800px) {\n    .post-full-content h2 {\n        margin-bottom: 0.3em;\n        font-size: 2.8rem;\n        line-height: 1.25em;\n    }\n}\n\n.post-full-content h3 {\n    margin: 0.5em 0 0.2em;\n    font-size: 2.5rem;\n    line-height: 1.3em;\n    font-weight: 600;\n}\n.post-full-content h2 + h3 {\n    margin-top: 0.7em;\n}\n@media (max-width: 800px) {\n    .post-full-content h3 {\n        margin-bottom: 0.3em;\n        font-size: 2.4rem;\n        line-height: 1.3em;\n    }\n}\n\n.post-full-content h4 {\n    margin: 0.5em 0 0.2em;\n    font-size: 2.5rem;\n    font-weight: 600;\n}\n.post-full-content h2 + h4 {\n    margin-top: 0.7em;\n}\n.post-full-content h3 + h4 {\n    margin-top: 0;\n}\n@media (max-width: 800px) {\n    .post-full-content h4 {\n        margin-bottom: 0.3em;\n        font-size: 2.4rem;\n        line-height: 1.3em;\n    }\n}\n\n.post-full-content h5 {\n    display: block;\n    margin: 0.5em 0;\n    padding: 0.4em 1em 0.9em;\n    border: 0;\n    color: var(--blue);\n    font-family: Georgia,serif;\n    font-size: 3.2rem;\n    line-height: 1.35em;\n    text-align: center;\n}\n@media (min-width: 1180px) {\n    .post-full-content h5 {\n        max-width: 1060px;\n        width: 100vw;\n    }\n}\n@media (max-width: 800px) {\n    .post-full-content h5 {\n        margin-bottom: 1em;\n        margin-left: 1.3em;\n        padding: 0 0 0.5em;\n        font-size: 2.4rem;\n        text-align: initial;\n    }\n}\n\n.post-full-content h6 {\n    margin: 0.5em 0 0.2em 0;\n    font-size: 2.0rem;\n    font-weight: 700;\n}\n@media (max-width: 800px) {\n    .post-full-content h6 {\n        font-size: 1.8rem;\n        line-height: 1.4em;\n    }\n}\n\n.footnotes-sep {\n    margin-bottom: 30px;\n}\n\n.footnotes {\n    font-size: 1.5rem;\n}\n\n.footnotes p {\n    margin: 0;\n}\n\n.footnote-backref {\n    color: var(--blue) !important;\n    font-size: 1.2rem;\n    font-weight: bold;\n    text-decoration: none !important;\n    box-shadow: none !important;\n}\n\n/* Some grouped styles for smaller viewports */\n@media (max-width: 1170px) {\n    .post-full-image {\n        margin: 25px -6vw 50px;\n        border-radius: 0;\n    }\n\n    .post-full-image img {\n        max-width: 1170px;\n    }\n}\n\n@media (max-width: 700px) {\n    .post-full-image {\n        margin: 25px -5vw;\n    }\n}\n\n@media (max-width: 500px) {\n    .post-full-meta {\n        font-size: 1.2rem;\n        line-height: 1.3em;\n    }\n\n    .post-full-title {\n        margin-top: 0.2em;\n        font-size: 4.2rem;\n        line-height: 1.05em;\n    }\n\n    .post-full-image {\n        margin-top: 5px;\n        margin-bottom: 5vw;\n    }\n\n    .post-full-content {\n        padding: 0;\n    }\n\n    .post-full-content:before,\n    .post-full-content:after {\n        display: none;\n    }\n}\n\n/* Tables */\n.post-full-content table {\n    display: inline-block;\n    overflow-x: auto;\n    margin: 0.5em 0 2.5em;\n    max-width: 100%;\n    width: auto;\n    border-spacing: 0;\n    border-collapse: collapse;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    font-size: 1.6rem;\n    white-space: nowrap;\n    vertical-align: top;\n}\n\n.post-full-content table {\n    -webkit-overflow-scrolling: touch;\n    background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;\n    background-attachment: scroll, scroll;\n    background-size: 10px 100%, 10px 100%;\n    background-repeat: no-repeat;\n}\n\n.post-full-content table td:first-child {\n    background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n    background-size: 20px 100%;\n    background-repeat: no-repeat;\n}\n\n.post-full-content table td:last-child {\n    background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n    background-position: 100% 0;\n    background-size: 20px 100%;\n    background-repeat: no-repeat;\n}\n\n.post-full-content table th {\n    color: var(--darkgrey);\n    font-size: 1.2rem;\n    font-weight: 700;\n    letter-spacing: 0.2px;\n    text-align: left;\n    text-transform: uppercase;\n    background-color: color(var(--whitegrey) l(+4%));\n}\n\n.post-full-content table th,\n.post-full-content table td {\n    padding: 6px 12px;\n    border: color(var(--whitegrey) l(-1%) s(-5%)) 1px solid;\n}\n\n\n/* 7.1. Post Byline\n/* ---------------------------------------------------------- */\n\n.post-full-byline {\n    display: flex;\n    justify-content: space-between;\n    margin: 35px 0 0;\n    padding-top: 15px;\n    border-top: 1px solid color(var(--lightgrey) l(+10%));\n}\n\n.post-full-byline-content {\n    flex-grow: 1;\n    display: flex;\n    align-items: flex-start;\n}\n\n.post-full-byline-content .author-list {\n    justify-content: flex-start;\n    padding: 0 12px 0 0;\n}\n\n.post-full-byline-meta {\n    margin: 2px 0 0;\n    color: color(var(--midgrey) l(+10%));\n    font-size: 1.2rem;\n    line-height: 1.2em;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;;\n}\n\n.post-full-byline-meta h4 {\n    margin: 0 0 3px;\n    font-size: 1.3rem;\n    line-height: 1.4em;\n    font-weight: 500;\n}\n\n.post-full-byline-meta h4 a {\n    color: color(var(--darkgrey) l(+10%));\n}\n\n.post-full-byline-meta h4 a:hover {\n    color: var(--darkgrey);\n}\n\n.post-full-byline-meta .bull {\n    display: inline-block;\n    margin: 0 4px;\n    opacity: 0.6;\n}\n\n.author-avatar {\n    display: block;\n    overflow: hidden;\n    margin: 0 -4px;\n    width: 40px;\n    height: 40px;\n    border: #fff 2px solid;\n    border-radius: 100%;\n    transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 700ms;\n}\n\n.author-list-item .author-card {\n    position: absolute;\n    bottom: 130%;\n    left: 50%;\n    z-index: 600;\n    display: flex;\n    justify-content: space-between;\n    margin-left: -200px;\n    width: 400px;\n    font-size: 1.4rem;\n    line-height: 1.5em;\n    background: white;\n    border-radius: 3px;\n    box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.06) 1px 3px 8px;\n    opacity: 0;\n    transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99);\n    transform: scale(0.98) translateY(15px);\n    pointer-events: none;\n}\n\n.author-list-item .author-card:before {\n    content: \"\";\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    display: block;\n    margin-left: -8px;\n    width: 0;\n    height: 0;\n    border-top: 8px solid #fff;\n    border-right: 8px solid transparent;\n    border-left: 8px solid transparent;\n}\n\n.author-list-item .author-card.hovered {\n    opacity: 1.0;\n    transform: scale(1) translateY(0px);\n    pointer-events: auto;\n}\n\n.author-card {\n    padding: 20px 20px 22px;\n}\n\n.author-card .author-info {\n    flex: 1 1 auto;\n    padding: 0 0 0 20px;\n}\n\n.author-card .author-info h2 {\n    margin: 8px 0 0;\n    font-size: 1.6rem;\n}\n\n.author-card .author-info p {\n    margin: 4px 0 0;\n    color: color(var(--midgrey) l(-10%));\n}\n\n.author-card .author-info .bio h2 {\n    margin-top: 0;\n}\n\n.author-card .author-info .bio p {\n    margin-top: 0.8em;\n}\n\n.author-card .author-profile-image {\n    flex: 0 0 60px;\n    margin: 0;\n    width: 60px;\n    height: 60px;\n    border: none;\n}\n\n.basic-info .avatar-wrapper {\n    position: relative;\n    margin: 0;\n    width: 60px;\n    height: 60px;\n    border: none;\n    background: rgba(229, 239, 245, 0.1);\n}\n\n.basic-info .avatar-wrapper svg {\n    margin: 0;\n    width: 60px;\n    height: 60px;\n    opacity: 0.15;\n}\n\n@media (max-width: 1170px) {\n    .author-list-item .author-card {\n        margin-left: -50px;\n        width: 430px;\n    }\n\n    .author-list-item .author-card:before {\n        left: 50px;\n    }\n}\n\n@media (max-width: 650px) {\n    .author-list-item .author-card {\n        display: none;\n    }\n}\n\n@media (max-width: 500px) {\n    .author-avatar {\n        width: 36px;\n        height: 36px;\n    }\n\n    .post-full-byline {\n        margin-top: 20px;\n    }\n\n    .post-full-byline-meta {\n        font-size: 1.2rem;\n    }\n\n    .post-full-byline-meta h4 {\n        margin-bottom: 2px;\n        font-size: 1.2rem;\n    }\n}\n\n\n/* 7.2. Members Subscribe Form\n/* ---------------------------------------------------------- */\n.subscribe-form {\n    margin: 1.5em 0;\n    padding: 6.5vw 7vw 8vw;\n    border: color(var(--lightgrey) l(+10%)) 1px solid;\n    text-align: center;\n    background: linear-gradient(color(var(--whitegrey) l(+6%)), color(var(--whitegrey) l(+4%)));\n    border-radius: 3px;\n}\n\n.subscribe-form-title {\n    margin: 0 0 3px 0;\n    padding: 0;\n    color: var(--darkgrey);\n    font-size: 3.5rem;\n    line-height: 1;\n    font-weight: 600;\n}\n\n.subscribe-form-description {\n    margin-bottom: 0.2em 0 1em;\n    color: var(--midgrey);\n    font-size: 2.1rem;\n    line-height: 1.55em;\n}\n\n.subscribe-form form {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    margin: 0 auto;\n    max-width: 460px;\n}\n\n.subscribe-form .form-group {\n    align-self: stretch;\n    display: flex;\n}\n\n.subscribe-email {\n    display: block;\n    padding: 10px;\n    width: 100%;\n    border: color(var(--lightgrey) l(+7%)) 1px solid;\n    color: var(--midgrey);\n    font-size: 1.8rem;\n    line-height: 1em;\n    font-weight: normal;\n    user-select: text;\n    border-radius: 5px;\n    transition: border-color 0.15s linear;\n\n    -webkit-appearance: none;\n}\n\n.subscribe-email:focus {\n    outline: 0;\n    border-color: color(var(--lightgrey) l(-2%));\n}\n\n.subscribe-form button {\n    position: relative;\n    display: inline-block;\n    margin: 0 0 0 10px;\n    padding: 0 20px;\n    height: 43px;\n    outline: none;\n    color: #fff;\n    font-size: 1.5rem;\n    line-height: 39px;\n    font-weight: 400;\n    text-align: center;\n    background: linear-gradient(\n    color(var(--blue) whiteness(+7%)),\n    color(var(--blue) lightness(-7%) saturation(-10%)) 60%,\n    color(var(--blue) lightness(-7%) saturation(-10%)) 90%,\n    color(var(--blue) lightness(-4%) saturation(-10%))\n    );\n    border-radius: 5px;\n\n    -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.subscribe-form button:active,\n.subscribe-form button:focus {\n    background: color(var(--blue) lightness(-9%) saturation(-10%));\n}\n\n.subscribe-form .button-loader,\n.subscribe-form .message-success,\n.subscribe-form .message-error {\n    display: none;\n}\n\n.subscribe-form .loading .button-content {\n    visibility: hidden;\n}\n\n.subscribe-form .loading .button-loader {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    display: inline-block;\n    margin-left: -19px;\n    transform: scale(0.7);\n}\n\n.subscribe-form .button-loader svg path,\n.subscribe-form .button-loader svg rect {\n    fill: #fff;\n}\n\n.subscribe-form .success .message-success,\n.subscribe-form .invalid .message-error,\n.subscribe-form .error .message-error {\n    margin: 1em auto 0;\n    max-width: 400px;\n    color: var(--red);\n    font-size: 1.6rem;\n    line-height: 1.5em;\n    text-align: center;\n}\n\n.subscribe-form .success .message-success {\n    display: block;\n    color: color(var(--green) l(-5%));\n}\n\n.subscribe-form .invalid .message-error,\n.subscribe-form .error .message-error {\n    display: block;\n}\n\n\n@media (max-width: 650px) {\n    .subscribe-form-title {\n        font-size: 2.4rem;\n    }\n\n    .subscribe-form-description {\n        font-size: 1.6rem;\n    }\n}\n\n@media (max-width: 500px) {\n    .subscribe-form form {\n        flex-direction: column;\n    }\n\n    .subscribe-form .form-group {\n        flex-direction: column;\n        width: 100%;\n    }\n\n    .subscribe-form button {\n        margin: 10px 0 0 0;\n        width: 100%;\n    }\n}\n\n\n/* 7.3. Comments\n/* ---------------------------------------------------------- */\n\n.post-full-comments {\n    margin: 0 auto;\n    max-width: 840px;\n}\n\n\n/* 7.4. Related posts\n/* ---------------------------------------------------------- */\n\n.read-next {\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    background: color(var(--darkgrey) l(-5%));\n}\n\n.read-next-feed {\n    display: flex;\n    flex-wrap: wrap;\n    margin: 0 -25px;\n    padding: 60px 0 0 0;\n}\n\n.read-next .post-card {\n    padding-bottom: 0;\n    border-bottom: none;\n}\n\n.read-next .post-card:after {\n    display: none;\n}\n\n.read-next .post-card-primary-tag {\n    color: #fff;\n    opacity: 0.6;\n}\n\n.read-next .post-card-title {\n    color: #fff;\n    opacity: 0.8;\n    transition: all 0.2s ease-in-out;\n}\n\n.read-next .post-card:hover .post-card-image {\n    opacity: 1.0;\n}\n\n.read-next .post-card-excerpt {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next .static-avatar {\n    border-color: #000;\n}\n\n.read-next .post-card-byline-content {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next .post-card-byline-content a {\n    color: rgba(255, 255, 255, 0.8);\n}\n\n.read-next-card {\n    position: relative;\n    flex: 0 1 326px;\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    margin: 0 25px 50px;\n    padding: 25px;\n    background: linear-gradient(color(var(--darkgrey) l(+2%)), color(var(--darkgrey) l(-5%)));\n    border-radius: 3px;\n}\n\n.read-next-card a {\n    transition: all 0.2s ease-in-out;\n}\n\n.read-next-card a:hover {\n    text-decoration: none;\n}\n\n.read-next-card-header h3 {\n    margin: 0;\n    color: rgba(255, 255, 255, 0.6);\n    font-size: 1.2rem;\n    line-height: 1em;\n    font-weight: 300;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n}\n\n.read-next-card-header h3 a {\n    color: #fff;\n    font-weight: 500;\n    text-decoration: none;\n    opacity: 0.8;\n}\n\n.read-next-card-header h3 a:hover {\n    opacity: 1;\n}\n\n.read-next-card-content {\n    font-size: 1.7rem;\n}\n\n.read-next-card-content ul {\n    display: flex;\n    flex-direction: column;\n    margin: 0;\n    padding: 0;\n    list-style: none;\n}\n\n.read-next-card-content li {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    margin: 0;\n    padding: 20px 0;\n    border-bottom: rgba(255, 255, 255, 0.1);\n}\n\n.read-next-card-content li:last-of-type {\n    padding-bottom: 5px;\n    border: none;\n}\n\n.read-next-card-content h4 {\n    margin: 0;\n    font-size: 1.6rem;\n    line-height: 1.35em;\n    font-weight: 600;\n}\n\n.read-next-card-content li a {\n    display: block;\n    color: #fff;\n    opacity: 0.8;\n}\n\n.read-next-card-content li a:hover {\n    opacity: 1;\n}\n\n.read-next-card-excerpt {\n    overflow: hidden;\n    max-width: 100%;\n    font-size: 1.4rem;\n    line-height: 1.2em;\n    text-overflow: ellipsis;\n}\n\n.read-next-card-meta {\n    margin-top: 2px;\n    font-size: 1.2rem;\n    line-height: 1.4em;\n    font-weight: 400;\n}\n\n.read-next-card-meta p {\n    margin: 0;\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next-card-footer {\n    position: relative;\n    margin: 40px 0 5px;\n}\n\n.read-next-card-footer a {\n    padding: 7px 12px 8px 14px;\n    border: 1px solid rgba(255, 255, 255, 0.6);\n    color: rgba(255, 255, 255, 0.6);\n    font-size: 1.3rem;\n    border-radius: 999px;\n    transition: all 0.35s ease-in-out;\n}\n\n.read-next-card-footer a:hover {\n    border-color: var(--yellow);\n    color: var(--yellow);\n    text-decoration: none;\n}\n\n@media (max-width: 1170px) {\n    .read-next-card {\n        flex: 1 1 261px;\n        margin-bottom: 5vw;\n    }\n}\n\n@media (max-width: 650px) {\n    .read-next-feed {\n        flex-direction: column;\n        padding: 25px 0 0;\n    }\n\n    .read-next-card {\n        flex: 1 1 auto;\n        margin: 0 25px;\n        padding: 0;\n        background: none;\n    }\n\n    .read-next .post-card {\n        flex: 1 1 auto;\n        margin: 25px;\n        padding: 25px 0 0;\n        border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    }\n}\n\n\n/* 7.5. Koenig Styles\n/* ---------------------------------------------------------- */\n\n.post-content {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n\n.post-full-content .kg-image {\n    margin: 0 auto;\n    max-width: 100%;\n}\n\n/* Preventing full-width image overlap with post image.  */\n.post-full-image + .post-full-content .kg-content *:first-child .kg-image {\n    width: 100%;\n}\n\n.post-full-content .kg-width-wide .kg-image {\n    max-width: 1040px;\n}\n\n.post-full-content .kg-width-full .kg-image {\n    max-width: 100vw;\n}\n\n.post-full-content figure {\n    margin: 0.8em 0 2.3em;\n}\n\n.post-full-content h1 + figure,\n.post-full-content h2 + figure,\n.post-full-content h3 + figure,\n.post-full-content h4 + figure {\n    margin-top: 2em;\n}\n\n.post-full-content figure img {\n    margin: 0;\n}\n\nfigcaption {\n    margin: 1.0em auto 0;\n    color: color(var(--midgrey) l(-10%));\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    font-size: 75%;\n    line-height: 1.5em;\n    text-align: center;\n    max-width: 1040px;\n}\n\n.kg-width-full figcaption {\n    padding: 0 1.5em;\n}\n\n.kg-embed-card {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    width: 100%;\n}\n\n.kg-embed-card .fluid-width-video-wrapper {\n    margin: 0;\n}\n\n\n@media (max-width: 1040px) {\n    .post-full-content .kg-width-full .kg-image {\n        width: 100vw;\n    }\n}\n\n.kg-gallery-container {\n    display: flex;\n    flex-direction: column;\n    max-width: 1040px;\n    width: 100vw;\n}\n\n.kg-gallery-row {\n    display: flex;\n    flex-direction: row;\n    justify-content: center;\n}\n\n.kg-gallery-image img {\n    display: block;\n    margin: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.kg-gallery-row:not(:first-of-type) {\n    margin: 0.75em 0 0 0;\n}\n\n.kg-gallery-image:not(:first-of-type) {\n    margin: 0 0 0 0.75em;\n}\n\n.kg-gallery-card + .kg-image-card.kg-width-wide,\n.kg-gallery-card + .kg-gallery-card,\n.kg-image-card.kg-width-wide + .kg-gallery-card,\n.kg-image-card.kg-width-wide + .kg-image-card.kg-width-wide {\n    margin: -2.25em 0 3em;\n}\n\n/* keep existing <pre> styles for code cards with captions */\n.kg-code-card {\n    width: 100%;\n}\n\n.kg-code-card pre {\n    margin: 0;\n}\n\n.kg-bookmark-card {\n    width: 100%;\n    background: var(--white);\n}\n\n.kg-card + .kg-bookmark-card {\n    margin-top: 0;\n}\n\n.post-full-content .kg-bookmark-container {\n    display: flex;\n    min-height: 148px;\n    color: var(--darkgrey);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    text-decoration: none;\n    border-radius: 3px;\n    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);\n}\n\n.post-full-content .kg-bookmark-container:hover {\n    color: var(--darkgrey);\n    text-decoration: none;\n    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);\n}\n\n.kg-bookmark-content {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    align-items: flex-start;\n    padding: 20px;\n}\n\n.kg-bookmark-title {\n    color: color(var(--midgrey) l(-30%));\n    font-size: 1.6rem;\n    line-height: 1.5em;\n    font-weight: 600;\n    transition: color 0.2s ease-in-out;\n}\n\n.post-full-content .kg-bookmark-container:hover .kg-bookmark-title {\n    color: var(--blue);\n}\n\n.kg-bookmark-description {\n    display: -webkit-box;\n    overflow-y: hidden;\n    margin-top: 12px;\n    max-height: 48px;\n    color: color(var(--midgrey) l(-10%));\n    font-size: 1.5rem;\n    line-height: 1.5em;\n    font-weight: 400;\n\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n}\n\n.kg-bookmark-thumbnail {\n    position: relative;\n    min-width: 33%;\n    max-height: 100%;\n}\n\n.kg-bookmark-thumbnail img {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border-radius: 0 3px 3px 0;\n\n    object-fit: cover;\n}\n\n.kg-bookmark-metadata {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    margin-top: 14px;\n    color: color(var(--midgrey) l(-10%));\n    font-size: 1.5rem;\n    font-weight: 400;\n}\n\n.post-full-content .kg-bookmark-icon {\n    margin-right: 8px;\n    width: 22px;\n    height: 22px;\n}\n\n.kg-bookmark-author {\n    line-height: 1.5em;\n}\n\n.kg-bookmark-author:after {\n    content: \"•\";\n    margin: 0 6px;\n}\n\n.kg-bookmark-publisher {\n    overflow: hidden;\n    max-width: 240px;\n    line-height: 1.5em;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n}\n\n@media (max-width: 800px) {\n    .post-full-content figure {\n        margin: 0.2em 0 1.3em;\n    }\n\n    .post-full-content h1 + figure,\n    .post-full-content h2 + figure,\n    .post-full-content h3 + figure,\n    .post-full-content h4 + figure {\n        margin-top: 0.9em;\n    }\n}\n\n@media (max-width: 500px) {\n    .post-full-content .kg-width-wide,\n    .post-full-content .kg-width-full {\n        margin-right: -5vw;\n        margin-left: -5vw;\n    }\n\n    .post-full-content figcaption {\n        margin-bottom: 0.4em;\n    }\n\n    .post-full-content .kg-bookmark-container {\n        flex-direction: column;\n    }\n\n    .kg-bookmark-title,\n    .kg-bookmark-description,\n    .kg-bookmark-metadata {\n        font-size: 1.4rem;\n        line-height: 1.5em;\n    }\n\n    .post-full-content .kg-bookmark-icon {\n        width: 18px;\n        height: 18px;\n    }\n\n    .kg-bookmark-thumbnail {\n        order: 1;\n        min-height: 160px;\n        width: 100%;\n    }\n\n    .kg-bookmark-thumbnail img {\n        border-radius: 3px 3px 0 0;\n    }\n\n    .kg-bookmark-content {\n        order: 2;\n    }\n}\n\n/* 8. Author Template\n/* ---------------------------------------------------------- */\n.author-header {\n    display: flex;\n    flex-direction: row;\n    justify-content: flex-start;\n    align-items: flex-start;\n    padding: 10vw 0 10px;\n}\n\n.site-archive-header .author-header {\n    align-items: center;\n}\n\n.site-archive-header .no-image .author-header {\n    padding-bottom: 20px;\n}\n\n.author-header-content {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    margin: 5px 0 0 30px;\n}\n\n.site-header-content .author-profile-image {\n    z-index: 10;\n    flex-shrink: 0;\n    margin: -4px 0 0;\n    width: 110px;\n    height: 110px;\n    box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;\n}\n\n.author-header-content .author-bio {\n    z-index: 10;\n    flex-shrink: 0;\n    margin: 6px 0 0;\n    max-width: 46em;\n    font-size: 2.0rem;\n    line-height: 1.3em;\n    font-weight: 400;\n    opacity: 0.8;\n}\n\n.author-header-content .author-meta {\n    z-index: 10;\n    flex-shrink: 0;\n    display: flex;\n    align-items: center;\n    margin: 0 0 0 1px;\n    font-size: 1.2rem;\n    font-weight: 400;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n    white-space: nowrap;\n}\n\n.author-header-content .social-link:first-of-type {\n    padding-left: 4px;\n}\n\n.no-image .author-header-content .author-bio {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n.no-image .author-header-content .author-meta {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n.author-social-link a {\n    color: #fff;\n    font-weight: 600;\n}\n\n.no-image .author-social-link a {\n    color: var(--darkgrey);\n}\n\n.author-social-link a:hover {\n    opacity: 1;\n}\n\n.author-social-link {\n    display: inline-block;\n    margin: 0;\n    padding: 6px 0;\n}\n\n.author-location + .author-stats:before,\n.author-stats + .author-social-link:before,\n.author-social-link + .author-social-link:before {\n    content: \"\\2022\";\n    display: inline-block;\n    margin: 0 12px;\n    color: #fff;\n    opacity: 0.6;\n}\n\n.no-image .author-location + .author-stats:before,\n.no-image .author-stats + .author-social-link:before,\n.no-image .author-social-link + .author-social-link:before {\n    color: var(--midgrey);\n}\n\n@media (max-width: 700px) {\n    .author-location,\n    .author-stats,\n    .author-stats + .author-social-link:first-of-type:before {\n        display: none;\n    }\n}\n\n@media (max-width: 500px) {\n    .author-header {\n        padding: 10px 0 0;\n    }\n\n    .no-image .author-header {\n        padding-bottom: 10px;\n    }\n\n    .author-header-content {\n        align-items: center;\n        margin: 16px 0 0 0;\n    }\n\n    .site-header-content .author-profile-image {\n        width: 96px;\n        height: 96px;\n    }\n\n    .author-header-content .author-bio {\n        font-size: 1.8rem;\n        line-height: 1.3em;\n        letter-spacing: 0;\n        text-align: center;\n    }\n\n    .author-header-content .author-meta {\n        margin-top: 8px;\n    }\n\n    .author-location + .author-stats:before,\n    .author-stats + .author-social-link:before,\n    .author-social-link + .author-social-link:before {\n        display: inline;\n        margin: 0 6px;\n    }\n}\n\n\n/* 9. Error Template\n/* ---------------------------------------------------------- */\n\n.error-content {\n    padding: 14vw 4vw 6vw;\n}\n\n.site-nav-center {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    padding: 10px 0;\n    text-align: center;\n}\n\n.site-nav-center .site-nav-logo {\n    margin-right: 0;\n}\n\n.error-message {\n    padding-bottom: 10vw;\n    border-bottom: 1px solid color(var(--lightgrey) l(+10%));\n    text-align: center;\n}\n\n.error-code {\n    margin: 0;\n    color: var(--lightgrey);\n    font-size: 12vw;\n    line-height: 1em;\n    letter-spacing: -5px;\n    opacity: 0.75;\n}\n\n.error-description {\n    margin: 0;\n    color: var(--midgrey);\n    font-size: 3rem;\n    line-height: 1.3em;\n    font-weight: 400;\n}\n\n.error-link {\n    display: inline-block;\n    margin-top: 5px;\n}\n\n@media (min-width: 940px) {\n    .error-content .post-card {\n        margin-bottom: 0;\n        padding-bottom: 0;\n        border-bottom: none;\n    }\n}\n\n@media (max-width: 800px) {\n    .error-content {\n        padding-top: 24vw;\n    }\n    .error-code {\n        font-size: 11.2rem;\n    }\n    .error-message {\n        padding-bottom: 16vw;\n    }\n    .error-description {\n        margin: 5px 0 0 0;\n        font-size: 1.8rem;\n    }\n}\n\n@media (max-width: 500px) {\n    .error-content {\n        padding-top: 28vw;\n    }\n    .error-message {\n        padding-bottom: 14vw;\n    }\n}\n\n\n/* 10. Subscribe Message and Overlay\n/* ---------------------------------------------------------- */\n\n.notification {\n    visibility: hidden;\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 9000;\n    padding: 22px 60px;\n    color: #fff;\n    font-size: 1.6rem;\n    line-height: 1.3em;\n    font-weight: 500;\n    text-align: center;\n    background: color(var(--green) l(-5%));\n    transition: all 0.35s cubic-bezier(0.19, 1, 0.22, 1) 0.5s;\n    transform: translateY(-175%);\n}\n\n.subscribe-success .notification-subscribe {\n    visibility: visible;\n    transform: translateY(0);\n}\n.signup-success .notification-signup {\n    visibility: visible;\n    transform: translateY(0);\n}\n.signin-success .notification-signin {\n    visibility: visible;\n    transform: translateY(0);\n}\n.signin-failure .notification-signin-failure {\n    visibility: visible;\n    background: color(var(--red) l(-5%));\n    transform: translateY(0);\n}\n.checkout-success .notification-checkout {\n    visibility: visible;\n    transform: translateY(0);\n}\n.billing-success .notification-billing-update {\n    visibility: visible;\n    transform: translateY(0);\n}\n\n.billing-cancel .notification-billing-update-cancel {\n    visibility: visible;\n    background: color(var(--red) l(-5%));\n    transform: translateY(0);\n}\n\n.notification.closed {\n    visibility: hidden;\n    transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);\n    transform: translateY(-175%);\n}\n\n.notification-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    display: block;\n}\n\n.notification-close:before {\n    content: \"\";\n    position: absolute;\n    top: 29px;\n    right: 25px;\n    display: block;\n    width: 18px;\n    height: 2px;\n    background: #fff;\n    border-radius: 2px;\n    transform: rotate(45deg);\n}\n\n.notification-close:after {\n    content: \"\";\n    position: absolute;\n    top: 29px;\n    right: 25px;\n    display: block;\n    width: 18px;\n    height: 2px;\n    background: #fff;\n    border-radius: 2px;\n    transform: rotate(-45deg);\n}\n\n\n.subscribe-overlay {\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 9000;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    background: rgba(9,10,11,0.97);\n    opacity: 0;\n    transition: opacity 0.2s ease-in;\n    pointer-events: none;\n\n    backdrop-filter: blur(3px);\n}\n\n.subscribe-overlay .subscribe-close:before,\n.subscribe-overlay .subscribe-close:after {\n    top: 36px;\n    width: 30px;\n}\n\n.subscribe-overlay:target {\n    opacity: 1;\n    pointer-events: auto;\n}\n\n.subscribe-overlay-content {\n    position: relative;\n    z-index: 9999;\n    margin: 0 0 5vw 0;\n    padding: 4vw;\n    color: #fff;\n    text-align: center;\n}\n\n.subscribe-overlay .subscribe-form {\n    border: none;\n    color: #fff;\n    background: none;\n}\n\n.subscribe-overlay-logo {\n    position: fixed;\n    top: 23px;\n    left: 30px;\n    height: 30px;\n}\n\n.subscribe-overlay-title {\n    display: inline-block;\n    margin: 0 0 10px 0;\n    font-size: 5.2rem;\n    line-height: 1.15em;\n}\n\n.subscribe-overlay-description {\n    margin: 0 auto 50px;\n    max-width: 650px;\n    color: #fff;\n    font-family: Georgia, serif;\n    font-size: 2.4rem;\n    line-height: 1.3em;\n    font-weight: 300;\n    opacity: 0.8;\n}\n\n.subscribe-overlay form {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin: 0 auto;\n    max-width: 540px;\n}\n\n.subscribe-overlay .form-group {\n    flex-grow: 1;\n}\n\n.subscribe-overlay .subscribe-email {\n    display: block;\n    padding: 14px 20px;\n    width: 100%;\n    border: none;\n    color: var(--midgrey);\n    font-size: 2rem;\n    line-height: 1em;\n    font-weight: normal;\n    letter-spacing: 0.5px;\n    user-select: text;\n    border-radius: 8px;\n    transition: border-color 0.15s linear;\n\n    -webkit-appearance: none;\n}\n\n.subscribe-email:focus {\n    outline: 0;\n    border-color: color(var(--lightgrey) l(-2%));\n}\n\n.subscribe-overlay button {\n    display: inline-block;\n    margin: 0 0 0 15px;\n    padding: 0 25px;\n    height: 52px;\n    outline: none;\n    color: #fff;\n    font-size: 1.7rem;\n    line-height: 38px;\n    font-weight: 400;\n    text-align: center;\n    background: linear-gradient(\n    color(var(--blue) whiteness(+7%)),\n    color(var(--blue) lightness(-7%) saturation(-10%)) 60%,\n    color(var(--blue) lightness(-7%) saturation(-10%)) 90%,\n    color(var(--blue) lightness(-4%) saturation(-10%))\n    );\n    border-radius: 8px;\n\n    -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.subscribe-overlay button:active,\n.subscribe-overlay button:focus {\n    background: color(var(--blue) lightness(-9%) saturation(-10%));\n}\n\n.subscribe-overlay .loading .button-loader {\n    top: 5px;\n}\n\n\n/* 11. Site Footer\n/* ---------------------------------------------------------- */\n\n.site-footer {\n    position: relative;\n    padding-top: 20px;\n    padding-bottom: 60px;\n    color: #fff;\n    background: color(var(--darkgrey) l(-5%));\n}\n\n.site-footer-content {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    align-items: center;\n    color: rgba(255,255,255,0.7);\n    font-size: 1.3rem;\n}\n\n.site-footer-content a {\n    color: rgba(255,255,255,0.7);\n}\n\n.site-footer-content a:hover {\n    color: rgba(255,255,255,1);\n    text-decoration: none;\n}\n\n.site-footer .copyright a {\n    padding: 0 0 0 15px;\n}\n\n.site-footer .copyright a:first-child {\n    padding: 0;\n}\n\n@media (max-width: 650px) {\n    .site-footer-content {\n        flex-direction: column;\n    }\n    .site-footer .copyright {\n        display: flex;\n        flex-wrap: wrap;\n        justify-content: center;\n        align-items: center;\n    }\n}\n\n\n/* 12. Members\n/* ---------------------------------------------------------- */\n\ninput[type=\"text\"],\ninput[type=\"password\"],\ninput[type=\"email\"],\ninput[type=\"tel\"],\ninput[type=\"search\"],\ninput[type=\"url\"],\nselect {\n    display: block;\n    padding: 0 0.6em;\n    width: 100%;\n    height: 44px;\n    outline: 0;\n    border: none;\n    border: solid 1px var(--lightgrey);\n    color: inherit;\n    text-decoration: none;\n    background: #fff;\n    border-radius: 5px;\n}\n\ninput[type=\"text\"]:focus,\ninput[type=\"password\"]:focus,\ninput[type=\"email\"]:focus,\ninput[type=\"tel\"]:focus,\ninput[type=\"search\"]:focus,\ninput[type=\"url\"]:focus,\nselect:focus,\ntextarea:focus {\n    border-color: var(--blue);\n}\n\n.button {\n    display: inline-block;\n    padding: 0 1.8rem;\n    height: 44px;\n    border: 0;\n    font-size: 1.5rem;\n    line-height: 42px;\n    font-weight: 600;\n    text-align: center;\n    text-decoration: none;\n    white-space: nowrap;\n    border-radius: 5px;\n    cursor: pointer;\n    transition: 0.4s ease;\n\n    appearance: none;\n}\n\n.button.fit {\n    width: 100%;\n}\n\n.button.small {\n    padding: 0 1.1rem;\n    height: 30px;\n    font-size: 1.4rem;\n    line-height: 30px;\n}\n\n.button.large {\n    padding: 0 3rem;\n    height: calc(44px * 1.14);\n    font-size: 1.6rem;\n    line-height: calc(44px * 1.14);\n}\n\n.button.disabled,\n.button:disabled {\n    opacity: 0.4;\n    pointer-events: none;\n}\n\n.button {\n    color: var(--blue);\n    background-color: transparent;\n    box-shadow: inset 0 0 0 1px var(--blue);\n}\n\n.button:hover {\n    color: var(--blue);\n    text-decoration: none;\n    box-shadow: inset 0 0 0 1px var(--blue);\n    transition: 0.2s ease;\n}\n\n.button.primary {\n    color: #fff;\n    background-color: var(--blue);\n    box-shadow: none;\n}\n\n.button.primary:hover {\n    background-color: var(--blue);\n}\n\n.site-signup {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n}\n\n.signup-form {\n    margin: 0 auto 10vw;\n    max-width: 500px;\n    width: 100%;\n    text-align: center;\n}\n\n.signup-title {\n    margin: 0 0 0.1em;\n    font-size: 4.2rem;\n}\n\n.signup-form p {\n    color: var(--midgrey);\n    font-size: 1.3em;\n}\n\n.signup-form p small {\n    display: inline-block;\n    margin: 15px 0 0 0;\n    font-size: 1.4rem;\n}\n\n.signup-box {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n}\n\n.signup-box .button {\n    margin-left: 10px;\n}\n\n@media (max-width: 600px) {\n    .signup-box {\n        flex-direction: column;\n    }\n    .signup-box .button {\n        margin: 15px 0 0 0;\n        width: 100%;\n    }\n}\n\n.site-signin {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n}\n\n.signin-form {\n    margin: 0 auto 10vw;\n    max-width: 500px;\n    width: 100%;\n    text-align: center;\n}\n\n.signin-title {\n    margin: 0 0 0.1em;\n    font-size: 4.2rem;\n}\n\n.signin-form p {\n    color: var(--midgrey);\n    font-size: 1.3em;\n}\n\n.signin-form p small {\n    display: inline-block;\n    margin: 15px 0 0 0;\n    font-size: 1.4rem;\n}\n\n.signin-box {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n}\n\n.signin-box .button {\n    margin-left: 10px;\n}\n\n@media (max-width: 600px) {\n    .signin-box {\n        flex-direction: column;\n    }\n    .signin-box .button {\n        margin: 15px 0 0 0;\n        width: 100%;\n    }\n}\n\n.checkout-form {\n    margin: 0 auto 10vw;\n    max-width: 700px;\n    width: 100%;\n    text-align: center;\n}\n\n.checkout-title {\n    margin: 0 auto 10px;\n    padding: 5vw 0 0;\n    font-size: 4rem;\n    font-weight: 600;\n    letter-spacing: -0.6px;\n}\n\n.checkout-form p {\n    margin: 0 auto 60px;\n    max-width: 500px;\n    color: var(--midgrey);\n    font-size: 1.3em;\n}\n\n.checkout-box {\n    display: flex;\n    justify-content: center;\n    align-items: stretch;\n}\n\n.checkout-plan {\n    flex: 1 1 auto;\n    display: flex;\n    flex-direction: column;\n    padding: 30px;\n    border-top: var(--blue) 6px solid;\n    color: color(var(--midgrey) l(-30%));\n    text-align: left;\n    background: #fff;\n    border-radius: 10px;\n    box-shadow: 0 0 0 1px rgba(39,44,49,0.03), 0 0 3px rgba(39,44,49,0.05), 0 5px 22px -10px rgba(39,44,49,0.12), 0 25px 30px -25px rgba(39,44,49,0.05);\n}\n\n.checkout-plan + .checkout-plan {\n    margin-left: 30px;\n}\n\n.checkout-plan-header {\n    position: relative;\n    padding: 0 0 50px;\n    color: var(--midgrey);\n    text-align: center;\n}\n\n.checkout-plan-header:after {\n    content: \"\";\n    position: absolute;\n    right: 30%;\n    bottom: 25px;\n    left: 30%;\n    display: block;\n    height: 2px;\n    background: rgba(39,44,49,0.08);\n    border-radius: 2px;\n}\n\n.checkout-plan-header h3 {\n    margin: 0 0 25px 0;\n    color: var(--darkgrey);\n    font-size: 1.8rem;\n    line-height: 1.15em;\n    font-weight: 700;\n    letter-spacing: 1.5px;\n    text-transform: uppercase;\n}\n\n.checkout-plan-header span {\n    font-size: 2.6rem;\n    font-weight: 300;\n}\n\n.checkout-plan-header strong {\n    color: var(--darkgrey);\n    font-size: 4.5rem;\n    font-weight: 500;\n}\n\n.checkout-plan-content {\n    flex: 1 1 auto;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n}\n\n.checkout-plan-content ul {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n}\n\n.checkout-plan-content li {\n    position: relative;\n    margin: 0;\n    padding: 0 0 15px 20px;\n    line-height: 1.4em;\n}\n\n.checkout-plan-content li:before {\n    content: \"✓\";\n    position: absolute;\n    left: 0;\n    display: block;\n    color: color(var(--green) l(-5%));\n    font-size: 1.6rem;\n    font-weight: 600;\n}\n\n.checkout-plan-content .button {\n    margin: 20px 0 0 0;\n}\n\n@media (max-width: 740px) {\n    .checkout-title {\n        margin-top: 50px;\n    }\n    .checkout-box {\n        flex-direction: column;\n    }\n    .checkout-plan + .checkout-plan {\n        margin: 5vw 0 0 0;\n    }\n}\n\nform[data-members-form] .button-loader,\nform[data-members-form] .message-success,\nform[data-members-form] .message-error {\n    display: none;\n}\n\n.message-success svg,\n.message-error svg {\n    position: relative;\n    top: -1px;\n    margin-right: 5px;\n    width: 15px;\n    height: 15px;\n}\n.message-success svg {\n    fill: #fff;\n}\n.message-error svg {\n    fill: var(--red);\n}\n\nform[data-members-form].success .message-success,\nform[data-members-form].error .message-error {\n    position: fixed;\n    top: 84px;\n    right: 20px;\n    left: 20px;\n    z-index: 9999;\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: color(var(--green) l(-5%));\n    border-radius: 5px;\n}\nform[data-members-form].success .message-success {\n    background: color(var(--green) l(-5%));\n}\nform[data-members-form].error .message-error {\n    color: var(--red);\n    background: #fff;\n    box-shadow: var(--red) 0 0 0 1px;\n}\n\nform[data-members-form] .button {\n    position: relative;\n}\n\n/*-- Loading --*/\n\n/* Hide button text */\nform[data-members-form].loading .button-content {\n    visibility: hidden;\n}\n\n/* Show loading spinner */\nform[data-members-form].loading .button-loader {\n    position: absolute;\n    left: 50%;\n    display: inline-block;\n    margin-left: -19px;\n    height: 31px;\n    transform: scale(0.7);\n}\n\n.button-loader svg path,\n.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\n.site-account {\n    z-index: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    padding: 5vw;\n}\n\n.subscriber-box {\n    margin: 0 auto;\n    max-width: 560px;\n    width: 100%;\n}\n\n.subscriber-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-start;\n}\n\n.subscription-title h1 {\n    margin-bottom: 12px;\n    font-size: 3.4rem;\n}\n\n.subscriber-avatar {\n    position: relative;\n    flex: 1 0 120px;\n    width: 120px;\n    height: 120px;\n    border: 1px solid color(var(--lightgrey) l(+10%));\n    background: color(var(--lightgrey) l(+10%));\n    border-radius: 100%;\n\n    object-fit: cover;\n}\n\n.subscription .subscriber-avatar {\n    margin: 4px 0 0 20px;\n}\n\n.subscriber-avatar img {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    border-radius: 100%;\n}\n\n.subscriber-box p {\n    line-height: 1.5em;\n}\n\n.subscription {\n    padding: 20px 0 40px;\n}\n\n.subscription-expiration-warning {\n    color: var(--red);\n}\n\n.subscriber-details {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: flex-start;\n    margin-bottom: 30px;\n    padding: 20px 0 0;\n    border-top: 1px solid color(var(--lightgrey) l(+10%));\n    border-bottom: 1px solid color(var(--lightgrey) l(+10%));\n}\n\n.subscriber-detail {\n    flex: 1 0 50%;\n    display: flex;\n    flex-direction: column;\n    margin: 0 0 20px;\n    padding: 0 20px 0 0;\n}\n\n.subscriber-detail-label {\n    font-size: 1.3rem;\n    font-weight: 700;\n    text-transform: uppercase;\n}\n\n.subscription-actions {\n    display: flex;\n    justify-content: space-between;\n    margin: 0;\n    padding: 0;\n    list-style: none;\n}\n\n.subscription-actions li {\n    margin: 0 0.8rem 0 0;\n    padding: 0;\n}\n\n.subscription-actions li:last-of-type {\n    margin-right: 0;\n}\n\n.subscription-actions li a {\n    display: inline-block;\n    padding: 0 1.8rem;\n    height: 44px;\n    border: 0;\n    color: var(--blue);\n    font-size: 1.5rem;\n    line-height: 42px;\n    font-weight: 600;\n    text-align: center;\n    text-decoration: none;\n    white-space: nowrap;\n    background-color: transparent;\n    border-radius: 5px;\n    box-shadow: inset 0 0 0 1px var(--blue);\n    cursor: pointer;\n    transition: 0.4s ease;\n\n    appearance: none;\n}\n\n.subscription-actions li a:hover {\n    color: var(--blue);\n    text-decoration: none;\n    text-decoration: none;\n    box-shadow: var(--blue);\n    transition: 0.2s ease;\n}\n\n.subscription-actions .gh-subscription-cancel {\n    color: color(var(--midgrey) l(+10%));\n    box-shadow: inset 0 0 0 1px color(var(--midgrey) l(+10%));\n}\n\n.subscription-actions .gh-subscription-cancel:hover {\n    color: var(--midgrey);\n    box-shadow: inset 0 0 0 1px var(--midgrey);\n}\n\n.gh-subscription-cancel[data-members-continue-subscription] {\n    color: #fff;\n    background-color: var(--blue);\n    box-shadow: none;\n}\n\n.gh-subscription-cancel[data-members-continue-subscription]:hover {\n    color: #fff;\n    background-color: var(--blue);\n    box-shadow: none;\n}\n\n.gh-error-subscription-cancel {\n    display: block;\n    margin-top: 10px;\n    color: var(--red);\n    font-size: 1.5rem;\n}\n\n.account-box {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    margin: 0 auto;\n    max-width: 560px;\n    width: 100%;\n}\n\n.account-box-title {\n    margin-top: 20px;\n    font-size: 3.4rem;\n    text-align: center;\n}\n\n.account-box p {\n    text-align: center;\n}\n\n.header-cta {\n    margin-left: 20px;\n}\n\n.post-card-header-tags {\n    display: flex;\n    align-items: center;\n    margin: 0 0 0.2em;\n}\n\n.post-visibility {\n    display: inline-block;\n    margin: 0 8px 1px 0;\n    padding: 1px 5px;\n    border: var(--lightgrey) 1px solid;\n    color: var(--midgrey);\n    font-size: 1.2rem;\n    line-height: 1.4em;\n    border-radius: 4px;\n}\n\n.post-visibility-members,\n.post-visibility-paid {\n    display: none;\n}\n\n.post-upgrade-cta {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n\n.post-upgrade-cta-content {\n    margin: 0 5vw;\n    padding: 40px 30px;\n    max-width: 840px;\n    width: 90vw;\n    color: #fff;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    text-align: center;\n    background: var(--blue);\n    border-radius: 5px;\n}\n\n.post-upgrade-cta-content h2 {\n    margin: 0;\n    color: #fff;\n    font-size: 2.6rem;\n    font-weight: 600;\n    letter-spacing: -0.5px;\n}\n\n.post-upgrade-cta .button,\n.post-upgrade-cta .button:hover {\n    margin: 30px 0;\n    color: var(--blue);\n    text-decoration: none;\n    background: #fff;\n    box-shadow: none;\n}\n\n.post-upgrade-cta p {\n    margin: 0;\n}\n\n.post-upgrade-cta a,\n.post-upgrade-cta a:hover {\n    color: #fff;\n    text-decoration: underline;\n    box-shadow: none !important;\n}\n\n@media (max-width: 600px) {\n    .subscriber-details {\n        flex-direction: column;\n    }\n\n    .subscriber-avatar {\n        display: none;\n    }\n}\n\n\n/* 13. Dark Mode\n/* ---------------------------------------------------------- */\n@media (prefers-color-scheme: dark) {\n    body {\n        color: rgba(255, 255, 255, 0.80);\n        background: var(--darkmode);\n    }\n\n    h1,\n    h2,\n    h3,\n    h4,\n    h5,\n    h6 {\n        color: #fff;\n    }\n\n    img {\n        opacity: 0.9;\n    }\n\n    .site-header-background:before {\n        background: rgba(0,0,0,0.6);\n    }\n\n    .post-feed {\n        background: var(--darkmode);\n    }\n\n    .post-card,\n    .post-card:hover {\n        border-bottom-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-visibility {\n        color: var(--lightgrey);\n    }\n\n    .author-profile-image {\n        background: color(var(--darkmode) l(+5%));\n    }\n\n    .post-card-byline-content a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-card-byline-content a:hover {\n        color: #fff;\n    }\n\n    .post-card-image {\n        background: var(--darkmode);\n    }\n\n    .post-card-title {\n        color: rgba(255, 255, 255, 0.85);\n    }\n\n    .post-card-excerpt {\n        color: color(var(--midgrey) l(+10%));\n    }\n\n    .author-avatar,\n    .static-avatar {\n        border-color: color(var(--darkgrey) l(+2%));\n    }\n\n    .site-main,\n    .post-template .site-main,\n    .page-template .site-main {\n        background: var(--darkmode);\n    }\n\n    .post-full-content {\n        background: var(--darkmode);\n    }\n\n    .post-full-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .post-full-custom-excerpt {\n        color: color(var(--midgrey) l(+10%));\n    }\n\n    .post-full-image {\n        background-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-full-byline {\n        border-top-color: color(var(--darkmode) l(+15%));\n    }\n\n    .post-full-byline-meta h4 a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-full-byline-meta h4 a:hover {\n        color: #fff;\n    }\n\n    .author-list-item .author-card {\n        background: color(var(--darkmode) l(+4%));\n        box-shadow: 0 12px 26px rgba(0,0,0,0.4);\n    }\n\n    .author-list-item .author-card:before {\n        border-top-color: color(var(--darkmode) l(+4%));\n    }\n\n    .no-image .author-social-link a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-full-content h1,\n    .post-full-content h2,\n    .post-full-content h3,\n    .post-full-content h4,\n    .post-full-content h6 {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .post-full-content a {\n        color: #fff;\n        box-shadow: inset 0 -1px 0 #fff;\n    }\n\n    .post-full-content strong {\n        color: #fff;\n    }\n\n    .post-full-content em {\n        color: #fff;\n    }\n\n    .post-full-content code {\n        color: #fff;\n        background: #000;\n    }\n\n    hr {\n        border-top-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-full-content hr:after {\n        background: color(var(--darkmode) l(+8%));\n        box-shadow: var(--darkmode) 0 0 0 5px;\n    }\n\n    .post-full-content figcaption {\n        color: rgba(255, 255, 255, 0.6);\n    }\n\n    .post-full-content table td:first-child {\n        background-image: linear-gradient(to right, var(--darkmode) 50%, color(var(--darkmode) a(0%)) 100%);\n    }\n\n    .post-full-content table td:last-child {\n        background-image: linear-gradient(to left, var(--darkmode) 50%, color(var(--darkmode) a(0%)) 100%);\n    }\n\n    .post-full-content table th {\n        color: rgba(255, 255, 255, 0.85);\n        background-color: color(var(--darkmode) l(+8%));\n    }\n\n    .post-full-content table th,\n    .post-full-content table td {\n        border: color(var(--darkmode) l(+8%)) 1px solid;\n    }\n\n    .post-full-content .kg-bookmark-container {\n        color: rgba(255, 255, 255, 0.75);\n        box-shadow: 0 0 1px rgba(255,255,255,0.9);\n    }\n\n    .kg-bookmark-title {\n        color: #fff;\n    }\n\n    .kg-bookmark-description {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .kg-bookmark-metadata {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .site-archive-header .no-image {\n        color: rgba(255, 255, 255, 0.9);\n        background: var(--darkmode);\n    }\n\n    .site-archive-header .no-image .site-header-content {\n        border-bottom-color: color(var(--darkmode) l(+15%));\n    }\n\n    .site-header-content .author-profile-image {\n        box-shadow: 0 0 0 6px hsla(0,0%,100%,0.04);\n    }\n\n    .subscribe-form {\n        border: none;\n        background: linear-gradient(color(var(--darkmode) l(-6%)), color(var(--darkmode) l(-3%)));\n    }\n\n    .subscribe-form-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .subscribe-form p {\n        color: rgba(255, 255, 255, 0.7);\n    }\n\n    .subscribe-email {\n        border-color: color(var(--darkmode) l(+6%));\n        color: rgba(255, 255, 255, 0.9);\n        background: color(var(--darkmode) l(+3%));\n    }\n\n    .subscribe-email:focus {\n        border-color: color(var(--darkmode) l(+25%));\n    }\n\n    .subscribe-form button {\n        opacity: 0.9;\n    }\n\n    .subscribe-form .invalid .message-error,\n    .subscribe-form .error .message-error {\n        color: color(var(--red) l(+5%) s(-5%));\n    }\n\n    .subscribe-form .success .message-success {\n        color: color(var(--green) l(+5%) s(-5%));\n    }\n\n    .account-menu-avatar {\n        background: color(var(--darkmode) l(+5%));\n    }\n\n    .account-menu-avatar img {\n        opacity: 1.0;\n    }\n\n    .account-menu ul {\n        background: color(var(--darkmode) l(+4%));\n        box-shadow: 0 12px 26px rgba(0,0,0,0.4);\n    }\n\n    .account-menu ul::before {\n        border-color: transparent transparent color(var(--darkmode) l(+4%));\n    }\n\n    .account-menu .account-info {\n        border-color: color(var(--darkmode) l(+10%));\n    }\n\n    .account-menu .account-email,\n    .account-menu ul a {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .subscriber-avatar {\n        border-color: color(var(--darkmode) l(+5%));\n        background: color(var(--darkmode) l(+5%));\n    }\n\n    .subscriber-avatar img {\n        opacity: 1.0;\n    }\n\n    .subscriber-details {\n        border-color: color(var(--darkmode) l(+5%));\n    }\n\n    input[type=\"text\"],\n    input[type=\"password\"],\n    input[type=\"email\"],\n    input[type=\"tel\"],\n    input[type=\"search\"],\n    input[type=\"url\"],\n    select {\n        color: var(--darkgrey);\n    }\n}\n"
  },
  {
    "path": "assets/js/infinitescroll.js",
    "content": "/**\n * Infinite Scroll\n */\n\n(function(window, document) {\n    // next link element\n    var nextElement = document.querySelector('link[rel=next]');\n    if (!nextElement) return;\n\n    // post feed element\n    var feedElement = document.querySelector('.post-feed');\n    if (!feedElement) return;\n\n    var buffer = 300;\n\n    var ticking = false;\n    var loading = false;\n\n    var lastScrollY = window.scrollY;\n    var lastWindowHeight = window.innerHeight;\n    var lastDocumentHeight = document.documentElement.scrollHeight;\n\n    function onPageLoad() {\n        if (this.status === 404) {\n            window.removeEventListener('scroll', onScroll);\n            window.removeEventListener('resize', onResize);\n            return;\n        }\n\n        // append contents\n        var postElements = this.response.querySelectorAll('.post-card');\n        postElements.forEach(function (item) {\n            feedElement.appendChild(item);\n        });\n\n        // set next link\n        var resNextElement = this.response.querySelector('link[rel=next]');\n        if (resNextElement) {\n            nextElement.href = resNextElement.href;\n        } else {\n            window.removeEventListener('scroll', onScroll);\n            window.removeEventListener('resize', onResize);\n        }\n\n        // sync status\n        lastDocumentHeight = document.documentElement.scrollHeight;\n        ticking = false;\n        loading = false;\n    }\n\n    function onUpdate() {\n        // return if already loading\n        if (loading) return;\n\n        // return if not scroll to the bottom\n        if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {\n            ticking = false;\n            return;\n        }\n\n        loading = true;\n\n        var xhr = new window.XMLHttpRequest();\n        xhr.responseType = 'document';\n\n        xhr.addEventListener('load', onPageLoad);\n\n        xhr.open('GET', nextElement.href);\n        xhr.send(null);\n    }\n\n    function requestTick() {\n        ticking || window.requestAnimationFrame(onUpdate);\n        ticking = true;\n    }\n\n    function onScroll() {\n        lastScrollY = window.scrollY;\n        requestTick();\n    }\n\n    function onResize() {\n        lastWindowHeight = window.innerHeight;\n        lastDocumentHeight = document.documentElement.scrollHeight;\n        requestTick();\n    }\n\n    window.addEventListener('scroll', onScroll, { passive: true });\n    window.addEventListener('resize', onResize);\n\n    requestTick();\n})(window, document);\n"
  },
  {
    "path": "assets/js/jquery.fitvids.js",
    "content": "/*jshint browser:true */\n/*!\n* FitVids 1.3\n*\n*\n* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation\n* This is an unofficial release, ported by John O'Nolan\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the MIT license\n*\n*/\n\n;(function( $ ){\n\n  'use strict';\n\n  $.fn.fitVids = function( options ) {\n    var settings = {\n      customSelector: null,\n      ignore: null\n    };\n\n    if(!document.getElementById('fit-vids-style')) {\n      // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n      var head = document.head || document.getElementsByTagName('head')[0];\n      var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n      var div = document.createElement(\"div\");\n      div.innerHTML = '<p>x</p><style id=\"fit-vids-style\">' + css + '</style>';\n      head.appendChild(div.childNodes[1]);\n    }\n\n    if ( options ) {\n      $.extend( settings, options );\n    }\n\n    return this.each(function(){\n      var selectors = [\n        'iframe[src*=\"player.vimeo.com\"]',\n        'iframe[src*=\"youtube.com\"]',\n        'iframe[src*=\"youtube-nocookie.com\"]',\n        'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n        'object',\n        'embed'\n      ];\n\n      if (settings.customSelector) {\n        selectors.push(settings.customSelector);\n      }\n\n      var ignoreList = '.fitvidsignore';\n\n      if(settings.ignore) {\n        ignoreList = ignoreList + ', ' + settings.ignore;\n      }\n\n      var $allVideos = $(this).find(selectors.join(','));\n      $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n      $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n      $allVideos.each(function(){\n        var $this = $(this);\n        if($this.parents(ignoreList).length > 0) {\n          return; // Disable FitVids on this video.\n        }\n        if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n        if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n        {\n          $this.attr('height', 9);\n          $this.attr('width', 16);\n        }\n        var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n            width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n            aspectRatio = height / width;\n        if(!$this.attr('name')){\n          var videoName = 'fitvid' + $.fn.fitVids._count;\n          $this.attr('name', videoName);\n          $.fn.fitVids._count++;\n        }\n        $this.wrap('<div class=\"fluid-width-video-container\"><div class=\"fluid-width-video-wrapper\"></div></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n        $this.removeAttr('height').removeAttr('width');\n      });\n    });\n  };\n\n  // Internal counter for unique video names.\n  $.fn.fitVids._count = 0;\n\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n"
  },
  {
    "path": "author.hbs",
    "content": "{{!< default}}\n{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}\n\n{{#author}}\n{{!-- Everything inside the #author tags pulls data from the author --}}\n\n\n<header class=\"site-archive-header\">\n    {{> site-header}}\n    {{> header-background background=cover_image}} {{!--Special header-image.hbs partial to generate the background image--}}\n        <div class=\"inner\">\n            <div class=\"site-header-content author-header\">\n                {{#if profile_image}}\n                    <img class=\"author-profile-image\" src=\"{{profile_image}}\" alt=\"{{name}}\" />\n                {{else}}\n                    <span class=\"author-profile-image\">{{> \"icons/avatar\"}}</span>\n                {{/if}}\n                <div class=\"author-header-content\">\n                    <h1 class=\"site-title\">{{name}}</h1>\n                    {{#if bio}}\n                        <h2 class=\"author-bio\">{{bio}}</h2>\n                    {{/if}}\n                    <div class=\"author-meta\">\n                        {{#if location}}\n                            <div class=\"author-location\">{{location}}</div>\n                        {{/if}}\n                        <div class=\"author-stats\">\n                            {{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}}\n                        </div>\n                        {{#if website}}\n                            <span class=\"author-social-link\"><a href=\"{{website}}\" target=\"_blank\" rel=\"noopener\">Website</a></span>\n                        {{/if}}\n                        {{#if twitter}}\n                            <span class=\"author-social-link\"><a href=\"{{twitter_url}}\" target=\"_blank\" rel=\"noopener\">Twitter</a></span>\n                        {{/if}}\n                        {{#if facebook}}\n                            <span class=\"author-social-link\"><a href=\"{{facebook_url}}\" target=\"_blank\" rel=\"noopener\">Facebook</a></span>\n                        {{/if}}\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</header>\n{{/author}}\n\n{{!-- The main content area --}}\n<main id=\"site-main\" class=\"site-main outer\">\n    <div class=\"inner posts\">\n\n        <div class=\"post-feed\">\n            {{#foreach posts}}\n\n                {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}\n                {{> \"post-card\"}}\n\n            {{/foreach}}\n        </div>\n\n    </div>\n</main>\n"
  },
  {
    "path": "default.hbs",
    "content": "<!DOCTYPE html>\n<html lang=\"{{@site.locale}}\">\n<head>\n\n    {{!-- Document Settings --}}\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n\n    {{!-- Base Meta --}}\n    <title>{{meta_title}}</title>\n    <meta name=\"HandheldFriendly\" content=\"True\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n\n    {{!-- Styles'n'Scripts --}}\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"{{asset \"built/screen.css\"}}\" />\n\n    {{!-- This tag outputs SEO meta+structured data and other important settings --}}\n    {{ghost_head}}\n\n</head>\n<body class=\"{{body_class}}\">\n\n    <div class=\"site-wrapper\">\n\n        {{!-- All the main content gets inserted here, index.hbs, post.hbs, etc --}}\n        {{{body}}}\n\n        {{!-- The footer at the very bottom of the screen --}}\n        <footer class=\"site-footer outer\">\n            <div class=\"site-footer-content inner\">\n                <section class=\"copyright\">\n                    <a href=\"{{@site.url}}\">{{@site.title}}</a> &copy; {{date format=\"YYYY\"}}\n                    <a href=\"{{@site.url}}\">Home</a>\n                    <a href=\"{{@site.url}}/signup\">Signup</a>\n                    {{#if @site.secondary_navigation}}\n                    {{navigation type=\"secondary\"}}\n                    {{/if}}\n                    {{#if @site.facebook}}<a href=\"{{facebook_url @site.facebook}}\" target=\"_blank\" rel=\"noopener\">Facebook</a>{{/if}}\n                    {{#if @site.twitter}}<a href=\"{{twitter_url @site.twitter}}\" target=\"_blank\" rel=\"noopener\">Twitter</a>{{/if}}\n                </section>\n                <nav class=\"site-footer-nav\">\n                    Published with\n                    <a href=\"https://ghost.org\" target=\"_blank\" rel=\"noopener\">Ghost</a>\n                </nav>\n            </div>\n        </footer>\n\n    </div>\n\n   {{> \"notifications\"}}\n\n\n\n    <script>\n        var images = document.querySelectorAll('.kg-gallery-image img');\n        images.forEach(function (image) {\n            var container = image.closest('.kg-gallery-image');\n            var width = image.attributes.width.value;\n            var height = image.attributes.height.value;\n            var ratio = width / height;\n            container.style.flex = ratio + ' 1 0%';\n        });\n    </script>\n\n\n    {{!-- jQuery + Fitvids, which makes all video embeds responsive --}}\n    <script\n        src=\"https://code.jquery.com/jquery-3.5.1.min.js\"\n        integrity=\"sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=\"\n        crossorigin=\"anonymous\">\n    </script>\n    <script type=\"text/javascript\" src=\"{{asset \"built/jquery.fitvids.js\"}}\"></script>\n\n    <script src=\"{{asset \"built/infinitescroll.js\"}}\"></script>\n\n    {{!-- Scripts for Members subscription --}}\n    <script>\n        // Parse the URL parameter\n        function getParameterByName(name, url) {\n            if (!url) url = window.location.href;\n            name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n            var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n                results = regex.exec(url);\n            if (!results) return null;\n            if (!results[2]) return '';\n            return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n        }\n\n        // Give the parameter a variable name\n        var action = getParameterByName('action');\n        var stripe = getParameterByName('stripe');\n        var success = getParameterByName('success');\n\n        $(document).ready(function () {\n            if (action == 'subscribe') {\n                $('body').addClass(\"subscribe-success\");\n            }\n            if (action == 'signup') {\n                window.location = '{{@site.url}}/signup/?action=checkout';\n            }\n            if (action == 'checkout') {\n                $('body').addClass(\"signup-success\");\n            }\n            // Success === null is here for backwards compatibility, can be removed shortly\n            if (action == 'signin' && (success === null || success === 'true')) {\n                $('body').addClass(\"signin-success\");\n            }\n            if (action == 'signin' && success === 'false') {\n                $('body').addClass(\"signin-failure\");\n            }\n            if (stripe == 'success') {\n                $('body').addClass(\"checkout-success\");\n            }\n            if (stripe == 'billing-update-success') {\n                $('body').addClass(\"billing-success\");\n            }\n            if (stripe == 'billing-update-cancel') {\n                $('body').addClass(\"billing-cancel\");\n            }\n\n            $('.notification-close').click(function () {\n                $(this).parent().addClass('closed');\n                var uri = window.location.toString();\n                if (uri.indexOf(\"?\") > 0) {\n                    var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\n                    window.history.replaceState({}, document.title, clean_uri);\n                }\n            });\n\n            // Reset form on opening subscrion overlay\n            $('.subscribe-button').click(function() {\n                $('.subscribe-overlay form').removeClass();\n                $('.subscribe-email').val('');\n            });\n\n            // Account navigation menu\n            $('.account-menu-avatar').click(function(event) {\n                $(this).toggleClass('active');\n                event.stopPropagation();\n            });\n\n            $('.account-menu-dropdown').click(function(event) {\n                event.stopPropagation();\n            });\n\n            $('body').click(function () {\n                $('.account-menu-avatar').removeClass('active');\n            });\n        });\n    </script>\n\n    {{!-- The #block helper will pull in data from the #contentFor other template files. In this case, there's some JavaScript which we only want to use in post.hbs, but it needs to be included down here, after jQuery has already loaded. --}}\n    {{{block \"scripts\"}}}\n\n    {{!-- Ghost outputs important scripts and data with this tag - it should always be the very last thing before the closing body tag --}}\n    {{ghost_foot}}\n\n</body>\n</html>\n"
  },
  {
    "path": "error-404.hbs",
    "content": "{{!--\nThis error template is used for all 404 errors, which might occur on your site.\nIt's a good idea to keep this template as minimal as possible in terms of both file size and complexity.\n--}}\n\n{{!< default}}\n{{!-- The tag above means: insert everything in this file\ninto the {body} of the default.hbs template --}}\n\n<header class=\"site-header\">\n    {{> site-header}}\n</header>\n\n<main id=\"site-main\" class=\"site-main outer error-content\">\n    <div class=\"inner\">\n        <section class=\"error-message\">\n            <h1 class=\"error-code\">{{statusCode}}</h1>\n            <p class=\"error-description\">{{message}}</p>\n            <a class=\"error-link\" href=\"{{@site.url}}\">Go to the front page →</a>\n        </section>\n\n        {{#get \"posts\" limit=\"3\" include=\"authors,tags\"}}\n        <div class=\"post-feed\">\n            {{#foreach posts}}\n            {{> \"post-card\"}}\n            {{/foreach}}\n        </div>\n        {{/get}}\n    </div>\n</main>"
  },
  {
    "path": "error.hbs",
    "content": "{{!--\nThis error template is used for all 400/500 errors, except 404, which might occur on your site.\nIt's a good idea to keep this template as minimal as possible in terms of both file size and complexity.\nYou'll notice that we *don't* use any JavaScript, or ghost_head / ghost_foot in this file.\n--}}\n\n<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n    <title>{{meta_title}}</title>\n    <meta name=\"HandheldFriendly\" content=\"True\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"{{asset \"built/screen.css\"}}\" />\n</head>\n\n<body>\n    <div class=\"site-wrapper\">\n\n        <header class=\"site-header no-image\">\n            <div class=\"site-nav-main outer\">\n                <div class=\"inner\">\n                    <nav class=\"site-nav-center\">\n                        {{#if @site.logo}}\n                        <a class=\"site-nav-logo\" href=\"{{@site.url}}\"><img src=\"{{img_url @site.logo size=\"xs\"}}\"\n                                alt=\"{{@site.title}}\" /></a>\n                        {{else}}\n                        <a class=\"site-nav-logo\" href=\"{{@site.url}}\">{{@site.title}}</a>\n                        {{/if}}\n                    </nav>\n                </div>\n            </div>\n        </header>\n\n        <main id=\"site-main\" class=\"site-main outer error-content\">\n            <div class=\"inner\">\n\n                <section class=\"error-message\">\n                    <h1 class=\"error-code\">{{statusCode}}</h1>\n                    <p class=\"error-description\">{{message}}</p>\n                    <a class=\"error-link\" href=\"{{@site.url}}\">Go to the front page →</a>\n                </section>\n\n                {{#if errorDetails}}\n                <section class=\"error-stack\">\n                    <h3>Theme errors</h3>\n                    <ul class=\"error-stack-list\">\n                        {{#foreach errorDetails}}\n                        <li>\n                            <em class=\"error-stack-function\">{{{rule}}}</em>\n\n                            {{#foreach failures}}\n                            <p><span class=\"error-stack-file\">Ref: {{ref}}</span></p>\n                            <p><span class=\"error-stack-file\">Message: {{message}}</span></p>\n                            {{/foreach}}\n                        </li>\n                        {{/foreach}}\n                    </ul>\n                </section>\n                {{/if}}\n\n            </div>\n        </main>\n    </div>\n</body>\n\n</html>"
  },
  {
    "path": "gulpfile.js",
    "content": "const {series, watch, src, dest, parallel} = require('gulp');\nconst pump = require('pump');\n\n// gulp plugins and utils\nconst livereload = require('gulp-livereload');\nconst postcss = require('gulp-postcss');\nvar zipModule;\nconst uglify = require('gulp-uglify');\nconst beeper = require('beeper');\nconst fs = require('fs');\n\n// postcss plugins\nconst autoprefixer = require('autoprefixer');\nconst colorFunction = require('postcss-color-function');\nconst cssnano = require('cssnano');\nconst customProperties = require('postcss-custom-properties');\nconst easyimport = require('postcss-easy-import');\n\nfunction serve(done) {\n    livereload.listen();\n    done();\n}\n\nconst handleError = (done) => {\n    return function (err) {\n        if (err) {\n            beeper();\n        }\n        return done(err);\n    };\n};\n\nfunction hbs(done) {\n    pump([\n        src(['*.hbs', 'partials/**/*.hbs', 'members/**/*.hbs']),\n        livereload()\n    ], handleError(done));\n}\n\nfunction css(done) {\n    const processors = [\n        easyimport,\n        customProperties({preserve: false}),\n        colorFunction(),\n        autoprefixer(),\n        cssnano()\n    ];\n\n    pump([\n        src('assets/css/*.css', {sourcemaps: true}),\n        postcss(processors),\n        dest('assets/built/', {sourcemaps: '.'}),\n        livereload()\n    ], handleError(done));\n}\n\nfunction js(done) {\n    pump([\n        src('assets/js/*.js', {sourcemaps: true}),\n        uglify(),\n        dest('assets/built/', {sourcemaps: '.'}),\n        livereload()\n    ], handleError(done));\n}\n\nasync function zipper(done) {\n    if (!zipModule) { zipModule = (await import('gulp-zip')).default; }\n    const targetDir = 'dist/';\n    const themeName = require('./package.json').name;\n    const filename = themeName + '.zip';\n\n    pump([\n        src([\n            '**',\n            '!node_modules', '!node_modules/**',\n            '!dist', '!dist/**'\n        ]),\n        zipModule(filename),\n        dest(targetDir)\n    ], handleError(done));\n}\n\nconst cssWatcher = () => watch('assets/css/**', css);\nconst hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs', 'members/**/*.hbs'], hbs);\nconst watcher = parallel(cssWatcher, hbsWatcher);\nconst build = series(css, js);\nconst dev = series(build, serve, watcher);\n\nexports.build = build;\nexports.zip = series(build, zipper);\nexports.default = dev;\n\n// release imports\nconst path = require('path');\nconst releaseUtils = require('@tryghost/release-utils');\n\nlet config;\ntry {\n    config = require('./config');\n} catch (err) {\n    config = null;\n}\n\nconst REPO = 'TryGhost/Casper';\nconst USER_AGENT = 'Casper';\nconst CHANGELOG_PATH = path.join(process.cwd(), '.', 'changelog.md');\n\nconst changelog = ({previousVersion}) => {\n    const changelog = new releaseUtils.Changelog({\n        changelogPath: CHANGELOG_PATH,\n        folder: path.join(process.cwd(), '.')\n    });\n\n    changelog\n        .write({\n            githubRepoPath: `https://github.com/${REPO}`,\n            lastVersion: previousVersion\n        })\n        .sort()\n        .clean();\n};\n\nconst previousRelease = () => {\n    return releaseUtils\n        .releases\n        .get({\n            userAgent: USER_AGENT,\n            uri: `https://api.github.com/repos/${REPO}/releases`\n        })\n        .then((response) => {\n            if (!response || !response.length) {\n                console.log('No releases found. Skipping');\n                return;\n            }\n            let prevVersion = response[0].tag_name || response[0].name;\n            console.log(`Previous version ${prevVersion}`);\n            return prevVersion;\n        });\n};\n\n/**\n *\n * `yarn ship` will trigger `postship` task.\n *\n * [optional] For full automation\n *\n * `GHOST=2.10.1,2.10.0 yarn ship`\n * First value: Ships with Ghost\n * Second value: Compatible with Ghost/GScan\n *\n * You can manually run in case the task has thrown an error.\n *\n * `npm_package_version=0.5.0 gulp release`\n */\nconst release = () => {\n    // @NOTE: https://yarnpkg.com/lang/en/docs/cli/version/\n    // require(./package.json) can run into caching issues, this re-reads from file everytime on release\n    var packageJSON = JSON.parse(fs.readFileSync('./package.json'));\n    const newVersion = packageJSON.version;\n    let shipsWithGhost = '{version}';\n    let compatibleWithGhost = '2.10.0';\n    const ghostEnvValues = process.env.GHOST || null;\n\n    if (ghostEnvValues) {\n        shipsWithGhost = ghostEnvValues.split(',')[0];\n        compatibleWithGhost = ghostEnvValues.split(',')[1];\n\n        if (!compatibleWithGhost) {\n            compatibleWithGhost = '2.10.0';\n        }\n    }\n\n    if (!newVersion || newVersion === '') {\n        console.log('Invalid version.');\n        return;\n    }\n\n    console.log(`\\nDraft release for ${newVersion}.`);\n\n    if (!config || !config.github || !config.github.username || !config.github.token) {\n        console.log('Please copy config.example.json and configure Github token.');\n        return;\n    }\n\n    return previousRelease()\n        .then((previousVersion) => {\n            changelog({previousVersion});\n\n            return releaseUtils\n                .releases\n                .create({\n                    draft: true,\n                    preRelease: false,\n                    tagName: newVersion,\n                    releaseName: newVersion,\n                    userAgent: USER_AGENT,\n                    uri: `https://api.github.com/repos/${REPO}/releases`,\n                    github: {\n                        username: config.github.username,\n                        token: config.github.token\n                    },\n                    content: [`**Ships with Ghost ${shipsWithGhost} Compatible with Ghost >= ${compatibleWithGhost}**\\n\\n`],\n                    changelogPath: CHANGELOG_PATH\n                })\n                .then((response) => {\n                    console.log(`\\nRelease draft generated: ${response.releaseUrl}\\n`);\n                });\n        });\n};\n\nexports.release = release;\n"
  },
  {
    "path": "index.hbs",
    "content": "{{!< default}}\n{{!-- The tag above means: insert everything in this file\ninto the {body} of the default.hbs template --}}\n\n<header class=\"site-home-header\">\n    {{> header-background background=@site.cover_image}} {{!--Special header-image.hbs partial to generate the background image--}}\n        <div class=\"inner\">\n            {{> \"site-nav\"}}\n            <div class=\"site-header-content\">\n                <h1 class=\"site-title\">\n                    {{#if @site.logo}}\n                        <img class=\"site-logo\" src=\"{{img_url @site.logo size=\"l\"}}\" alt=\"{{@site.title}}\" />\n                    {{else}}\n                        {{@site.title}}\n                    {{/if}}\n                </h1>\n                <h2 class=\"site-description\">{{@site.description}}</h2>\n            </div>\n        </div>\n    </div>\n</header>\n\n{{!-- The main content area --}}\n<main id=\"site-main\" class=\"site-main outer\">\n    <div class=\"inner posts\">\n\n        <div class=\"post-feed\">\n            {{#foreach posts}}\n\n                {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}\n                {{> \"post-card\"}}\n\n            {{/foreach}}\n        </div>\n\n    </div>\n</main>\n\n{{> site-header}}\n\n{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}}\n{{#contentFor \"scripts\"}}\n<script>\n\n    // NOTE: Scroll performance is poor in Safari\n    // - this appears to be due to the events firing much more slowly in Safari.\n    //   Dropping the scroll event and using only a raf loop results in smoother\n    //   scrolling but continuous processing even when not scrolling\n    $(document).ready(function () {\n        var nav = document.querySelector('.site-nav-main .site-nav');\n        var feed = document.querySelector('.post-feed');\n\n        var lastScrollY = window.scrollY;\n        var lastWindowHeight = window.innerHeight;\n        var lastDocumentHeight = $(document).height();\n        var ticking = false;\n\n        function onScroll() {\n            lastScrollY = window.scrollY;\n            requestTick();\n        }\n\n        function onResize() {\n            lastWindowHeight = window.innerHeight;\n            lastDocumentHeight = $(document).height();\n            requestTick();\n        }\n\n        function requestTick() {\n            if (!ticking) {\n                requestAnimationFrame(update);\n            }\n            ticking = true;\n        }\n\n        function update() {\n            var trigger = feed.getBoundingClientRect().top + window.scrollY;\n            var progressMax = lastDocumentHeight - lastWindowHeight;\n\n            // show/hide nav\n            if (lastScrollY >= trigger - 20) {\n                nav.classList.add('fixed-nav-active');\n            } else {\n                nav.classList.remove('fixed-nav-active');\n            }\n\n            ticking = false;\n        }\n\n        window.addEventListener('scroll', onScroll, { passive: true });\n        window.addEventListener('resize', onResize, false);\n\n        update();\n\n    });\n</script>\n{{/contentFor}}\n"
  },
  {
    "path": "members/account.hbs",
    "content": "{{!< ../default}}\n\n<header class=\"site-header\">\n    {{> site-header}}\n</header>\n<main id=\"site-main\" class=\"site-main site-account outer\">\n    <div class=\"inner\">\n\n    {{#if @member.paid}}\n\n        {{!-- Logged in, paying member: Show account info --}}\n        <div class=\"subscriber-box\">\n\n            {{#foreach @member.subscriptions}}\n                <div class=\"subscription\">\n                    <div class=\"subscriber-header\">\n                        <div class=\"subscription-title\">\n                            {{#if @first}}\n                                <h1>Your account</h1>\n                            {{/if}}\n                            {{#if cancel_at_period_end}}\n                                <p>\n                                    <strong class=\"subscription-expiration-warning\">Your subscription will expire on {{date current_period_end format=\"DD MMM YYYY\"}}.</strong> If you change your mind in the meantime you can turn auto-renew back on to continue your subscription.\n                                </p>\n                            {{else}}\n                                <p>\n                                    Hey! You have an active <strong>{{@site.title}}</strong> account with access to all areas. Get in touch if have any problems or need some help getting things updated, and thanks for subscribing.\n                                </p>\n                            {{/if}}\n                        </div>\n                        {{#if @first}}\n                            <div class=\"subscriber-avatar\">\n                                {{> \"icons/avatar\"}}\n                                {{#if @member.avatar_image}}\n                                    <img src=\"{{@member.avatar_image}}\" />\n                                {{/if}}\n                            </div>\n                        {{/if}}\n                    </div>\n                    <div class=\"subscriber-details\">\n                        <div class=\"subscriber-detail\">\n                            <label class=\"subscriber-detail-label\">Email address</label>\n                            <span class=\"subscriber-detail-content\">{{@member.email}}</span>\n                        </div>\n\n                        <div class=\"subscriber-detail\">\n                            <label class=\"subscriber-detail-label\">Your plan</label>\n                                <span class=\"subscriber-detail-content\">{{price plan}}/{{plan.interval}}</span>\n                        </div>\n\n                        <div class=\"subscriber-detail\">\n                            <label class=\"subscriber-detail-label\">Card</label>\n                            <span class=\"subscriber-detail-content\">**** **** **** {{default_payment_card_last4}}</span>\n                        </div>\n\n                        <div class=\"subscriber-detail\">\n                            <label class=\"subscriber-detail-label\">\n                                {{#if cancel_at_period_end}}\n                                    Expires\n                                {{else}}\n                                    Next bill date\n                                {{/if}}\n                            </label>\n                            <span class=\"subscriber-detail-content\">{{date current_period_end format=\"DD MMM YYYY\"}}</span>\n                        </div>\n                    </div>\n\n                    <ul class=\"subscription-actions\">\n                        <li><a href=\"javascript:\"\n                                data-members-edit-billing\n                                data-members-success=\"{{@site.url}}/account/?stripe=billing-update-success\"\n                                data-members-cancel=\"{{@site.url}}/account/?stripe=billing-update-cancel\">Edit billing info</a></li>\n                        <li>{{cancel_link}}</li>\n                    </ul>\n                </div>\n            {{/foreach}}\n        </div>\n\n    {{else if @member}}\n\n        {{!-- Logged in, not paying: Link to checkout --}}\n        <div class=\"account-box\">\n            <div class=\"subscriber-avatar\">\n                {{> \"icons/avatar\"}}\n                {{#if @member.avatar_image}}\n                    <img src=\"{{@member.avatar_image}}\" />\n                {{/if}}\n            </div>\n            <h1 class=\"account-box-title\">Currently, you're not a subscriber</h1>\n            <p>Hey there! <strong>{{@member.email}}</strong> is subscribed to free updates from {{@site.title}}, but doesn't have a paid subscription to unlock full access.</p>\n            <div class=\"authbox-signup\">\n                <a class=\"button primary\" href=\"{{@site.url}}/signup/\">\n                    <span class=\"button-content\">Subscribe now</span>\n                </a>\n            </div>\n        </div>\n\n    {{else}}\n\n        {{!-- Not logged in: Redirect to signin --}}\n        <script>window.location = '{{@site.url}}/signin/';</script>\n\n    {{/if}}\n\n    </div>\n</main>\n"
  },
  {
    "path": "members/signin.hbs",
    "content": "{{!< ../default}}\n\n<header class=\"site-header\">\n    {{> site-header}}\n</header>\n<main id=\"site-main\" class=\"site-main site-signin outer\">\n    <div class=\"inner\">\n\n    {{#if @member}}\n\n        {{!-- Logged in: Redirect home --}}\n        <script>window.location = '{{@site.url}}';</script>\n\n    {{else}}\n\n        {{!-- Not logged in: Signin form --}}\n        <form class=\"signin-form\" data-members-form=\"signin\">\n            <h1 class=\"signin-title\">Welcome back!</h1>\n            <p>Sign into your account again for full access</p>\n            <div class=\"signin-box\">\n                <input data-members-email type=\"email\" placeholder=\"Your email address\" required=\"true\" autocomplete=\"false\" />\n                <button class=\"button primary\" type=\"submit\">\n                    <span class=\"button-content\">Send login link</span>\n                    <span class=\"button-loader\">{{> \"icons/loader\"}}</span>\n                </button>\n            </div>\n            <p><small>Don't have an account yet? <a href=\"{{@site.url}}/signup/\">Sign up</a></small></p>\n            <div class=\"message-success\"><strong>Great!</strong> Check your inbox and click the link to complete signin</div>\n            <div class=\"message-error\">Please enter a valid email address!</div>\n        </form>\n\n    {{/if}}\n\n    </div>\n</main>\n"
  },
  {
    "path": "members/signup.hbs",
    "content": "{{!< ../default}}\n\n<header class=\"site-header\">\n    {{> site-header}}\n</header>\n<main id=\"site-main\" class=\"site-main site-signup outer\">\n    <div class=\"inner\">\n\n    {{#if @member.paid}}\n\n        {{!-- Logged in, paying member: Redirect home --}}\n        <script>window.location = '{{@site.url}}';</script>\n\n    {{else if @member}}\n\n        {{!-- Logged in, not paying: Check out --}}\n        <div class=\"checkout-form\">\n            <h1 class=\"checkout-title\">Choose your subscription</h1>\n            <p>Unlock full access to {{@site.title}} and see the entire library of members-only content & updates</p>\n            <div class=\"checkout-box\">\n                <div class=\"checkout-plan\">\n                    <header class=\"checkout-plan-header\">\n                        <h3>Monthly</h3>\n                        <strong>{{price currency=@price.currency}}{{@price.monthly}}</strong> / month\n                    </header>\n                    <div class=\"checkout-plan-content\">\n                        <ul>\n                            <li>Full access to all private posts</li>\n                            <li>Regular updates with new content</li>\n                            <li>Support independent publishing</li>\n                            <li>Simple, secure card payment</li>\n                        </ul>\n                        <a class=\"button primary fit\" href=\"javascript:\" data-members-plan=\"Monthly\">Choose this plan</a>\n                    </div>\n                </div>\n                <div class=\"checkout-plan\">\n                    <header class=\"checkout-plan-header\">\n                        <h3>Yearly</h3>\n                        <strong>{{price currency=@price.currency}}{{@price.yearly}}</strong> / year\n                    </header>\n                    <div class=\"checkout-plan-content\">\n                        <ul>\n                            <li>Full access to all private posts</li>\n                            <li>Regular updates with new content</li>\n                            <li>Support independent publishing</li>\n                            <li>Simple, secure card payment</li>\n                            <li>One easy payment instead of 12!</li>\n                        </ul>\n                        <a class=\"button primary fit\" href=\"javascript:\" data-members-plan=\"Yearly\">Choose this plan</a>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n    {{else}}\n\n        {{!-- Not logged in: Sign up --}}\n        <form class=\"signup-form\" data-members-form=\"signup\">\n            <h1 class=\"signup-title\">Signup to {{@site.title}}</h1>\n            <p>{{@site.description}}</p>\n            <div class=\"signup-box\">\n                <input data-members-email type=\"email\" placeholder=\"Type your email...\" required=\"true\" autocomplete=\"false\" />\n                <button class=\"button primary\" type=\"submit\">\n                    <span class=\"button-content\">Continue</span>\n                    <span class=\"button-loader\">{{> \"icons/loader\"}}</span>\n                </button>\n            </div>\n            <p><small>Already have an account? <a href=\"{{@site.url}}/signin/\">Sign in</a></small></p>\n            <div class=\"message-success\"><strong>Great!</strong> Check your inbox and click the link to confirm your subscription</div>\n            <div class=\"message-error\">Please enter a valid email address!</div>\n        </form>\n\n    {{/if}}\n\n    </div>\n</main>\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"lyra\",\n  \"description\": \"A premium publication theme for Ghost.\",\n  \"demo\": \"https://lyra.ghost.io\",\n  \"version\": \"1.0.0\",\n  \"engines\": {\n    \"ghost\": \">=4.0.0\"\n  },\n  \"license\": \"MIT\",\n  \"screenshots\": {\n    \"desktop\": \"assets/screenshot-desktop.jpg\"\n  },\n  \"scripts\": {\n    \"dev\": \"gulp\",\n    \"zip\": \"gulp zip\",\n    \"test\": \"gscan .\",\n    \"test:ci\": \"gscan --fatal --verbose .\",\n    \"pretest\": \"gulp build\",\n    \"preship\": \"yarn test\",\n    \"ship\": \"STATUS=$(git status --porcelain); echo $STATUS; if [ -z \\\"$STATUS\\\" ]; then yarn version && git push --follow-tags; fi\"\n  },\n  \"author\": {\n    \"name\": \"Ghost Foundation\",\n    \"email\": \"hello@ghost.org\",\n    \"url\": \"https://ghost.org\"\n  },\n  \"gpm\": {\n    \"type\": \"theme\",\n    \"categories\": [\n      \"Minimal\",\n      \"Magazine\"\n    ]\n  },\n  \"keywords\": [\n    \"ghost\",\n    \"theme\",\n    \"ghost-theme\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/TryGhost/Starter.git\"\n  },\n  \"bugs\": \"https://github.com/TryGhost/Starter/issues\",\n  \"contributors\": \"https://github.com/TryGhost/Starter/graphs/contributors\",\n  \"devDependencies\": {\n    \"@tryghost/release-utils\": \"0.8.1\",\n    \"autoprefixer\": \"10.4.27\",\n    \"beeper\": \"2.1.0\",\n    \"cssnano\": \"7.1.3\",\n    \"gscan\": \"5.4.3\",\n    \"gulp\": \"5.0.1\",\n    \"gulp-livereload\": \"4.0.2\",\n    \"gulp-postcss\": \"10.0.0\",\n    \"gulp-sourcemaps\": \"3.0.0\",\n    \"gulp-uglify\": \"3.0.2\",\n    \"gulp-util\": \"3.0.8\",\n    \"gulp-watch\": \"5.0.1\",\n    \"gulp-zip\": \"6.1.0\",\n    \"postcss\": \"8.5.8\",\n    \"postcss-color-function\": \"4.1.0\",\n    \"postcss-custom-properties\": \"15.0.1\",\n    \"postcss-easy-import\": \"4.0.0\"\n  },\n  \"browserslist\": [\n    \"defaults\"\n  ],\n  \"config\": {\n    \"posts_per_page\": 15,\n    \"image_sizes\": {\n      \"xxs\": {\n        \"width\": 30\n      },\n      \"xs\": {\n        \"width\": 100\n      },\n      \"s\": {\n        \"width\": 300\n      },\n      \"m\": {\n        \"width\": 600\n      },\n      \"l\": {\n        \"width\": 1200\n      },\n      \"xl\": {\n        \"width\": 2000\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "page.hbs",
    "content": "{{!< default}}\n{{!-- The tag above means: insert everything in this file\ninto the {body} of the default.hbs template --}}\n\n{{!-- The big featured header, it uses blog cover image as a BG if available --}}\n<header class=\"site-header\">\n    <div class=\"outer site-nav-main\">\n        <div class=\"inner\">\n            {{> \"site-nav\"}}\n        </div>\n    </div>\n</header>\n\n{{!-- Everything inside the #post tags pulls data from the post --}}\n{{#post}}\n\n<main id=\"site-main\" class=\"site-main outer\">\n    <div class=\"inner\">\n\n        <article class=\"post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}\">\n\n            <header class=\"post-full-header\">\n                <h1 class=\"post-full-title\">{{title}}</h1>\n            </header>\n\n            {{#if feature_image}}\n            <figure class=\"post-full-image\">\n                {{!-- This is a responsive image, it loads different sizes depending on device\n                https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}\n                <img\n                    srcset=\"{{img_url feature_image size=\"s\"}} 300w,\n                            {{img_url feature_image size=\"m\"}} 600w,\n                            {{img_url feature_image size=\"l\"}} 1000w,\n                            {{img_url feature_image size=\"xl\"}} 2000w\"\n                    sizes=\"(max-width: 800px) 400px,\n                            (max-width: 1170px) 1170px,\n                            2000px\"\n                    src=\"{{img_url feature_image size=\"xl\"}}\"\n                    alt=\"{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}\"\n                />\n                {{#if feature_image_caption}}\n                    <figcaption>{{feature_image_caption}}</figcaption>\n                {{/if}}\n            </figure>\n            {{/if}}\n\n            <section class=\"post-full-content\">\n                <div class=\"post-content\">\n                    {{content}}\n                </div>\n            </section>\n\n        </article>\n\n    </div>\n</main>\n\n{{/post}}\n\n{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}}\n{{#contentFor \"scripts\"}}\n<script>\n$(function() {\n    var $postContent = $(\".post-full-content\");\n    $postContent.fitVids();\n});\n</script>\n{{/contentFor}}\n"
  },
  {
    "path": "partials/byline-multiple.hbs",
    "content": "<section class=\"post-full-authors\">\n\n    <div class=\"post-full-authors-content\">\n        <p>This post was a collaboration between</p>\n        <p>{{authors}}</p>\n    </div>\n\n    <ul class=\"author-list\">\n    {{#foreach authors}}\n        <li class=\"author-list-item\">\n\n            <div class=\"author-card\">\n                <div class=\"basic-info\">\n                    {{#if profile_image}}\n                        <img class=\"author-profile-image\" src=\"{{img_url profile_image size=\"xs\"}}\" alt=\"{{name}}\" />\n                    {{else}}\n                        <div class=\"author-profile-image\">{{> \"icons/avatar\"}}</div>\n                    {{/if}}\n                    <h2>{{name}}</h2>\n                </div>\n                <div class=\"bio\">\n                    {{#if bio}}\n                        <p>{{bio}}</p>\n                        <p><a href=\"{{url}}\">More posts</a> by {{name}}.</p>\n                    {{else}}\n                        <p>Read <a href=\"{{url}}\">more posts</a> by this author.</p>\n                    {{/if}}\n                </div>\n            </div>\n\n            {{#if profile_image}}\n                <a href=\"{{url}}\" class=\"moving-avatar\">\n                    <img class=\"author-profile-image\" src=\"{{img_url profile_image size=\"xs\"}}\" alt=\"{{name}}\" />\n                </a>\n            {{else}}\n                <a href=\"{{url}}\" class=\"moving-avatar author-profile-image\">{{> \"icons/avatar\"}}</a>\n            {{/if}}\n\n        </li>\n    {{/foreach}}\n\n    </ul>\n\n</section>\n\n{{#contentFor \"scripts\"}}\n<script>\n// Adds delay to author card dropups to disappear. This gives enough\n// time for the user to interact with the author card while they move\n// the mouse from the avatar to the card. Also makes space for the\n// interacted avatar.\n$(document).ready(function () {\n\n    var hoverTimeout;\n\n    $('.author-list-item').hover(function(){\n        var $this = $(this);\n\n        clearTimeout(hoverTimeout);\n\n        $('.author-card').removeClass('hovered');\n        $(this).children('.author-card').addClass('hovered');\n\n    }, function() {\n        var $this = $(this);\n\n        hoverTimeout = setTimeout(function() {\n            $this.children('.author-card').removeClass('hovered');\n        }, 800);\n    });\n\n});\n</script>\n{{/contentFor}}\n"
  },
  {
    "path": "partials/byline-single.hbs",
    "content": "{{!-- Everything inside the #author tags pulls data from the author --}}\n{{#primary_author}}\n\n<section class=\"author-card\">\n    {{#if profile_image}}\n        <img class=\"author-profile-image\" src=\"{{img_url profile_image size=\"xs\"}}\" alt=\"{{name}}\" />\n    {{else}}\n        <span class=\"avatar-wrapper\">{{> \"icons/avatar\"}}</span>\n    {{/if}}\n    <section class=\"author-card-content\">\n        <h4 class=\"author-card-name\"><a href=\"{{url}}\">{{name}}</a></h4>\n        {{#if bio}}\n            <p>{{bio}}</p>\n        {{else}}\n            <p>Read <a href=\"{{url}}\">more posts</a> by this author.</p>\n        {{/if}}\n    </section>\n</section>\n<div class=\"post-full-footer-right\">\n    <a class=\"author-card-button\" href=\"{{url}}\">Read More</a>\n</div>\n\n{{/primary_author}}\n"
  },
  {
    "path": "partials/content-cta.hbs",
    "content": "{{{html}}}\n\n<aside class=\"post-upgrade-cta\">\n    <div class=\"post-upgrade-cta-content\">\n        {{#if @member}}\n        <h2>This post is for paying subscribers only</h2>\n        {{else}}\n        <h2>This post is for subscribers only</h2>\n        {{/if}}\n        <a class=\"button large primary\" href=\"/signup/\">Subscribe now</a>\n        <p><small>Already have an account? <a href=\"/signin/\">Sign in</a></small></p>\n    </div>\n</aside>"
  },
  {
    "path": "partials/header-background.hbs",
    "content": "{{!--\nWow what the hell is going on in here even?\n\nOk so, several templates use this big header with a giant BG image. Nice idea, but big images\nhave a heavy impact on performance, so it's a good idea to make them responsive. Because we\ncan only get the image dynamically using Handlebars, and we can only set the image to properly\nbe a background image using CSS, we end up with a handful of inline styles.\n\nIf the template in question has a background image, then we render responsive image styles\nfor it, and apply those styles to the <header> tag. Else, we just output a <header> tag\nwith a `no-image` class so we can style it accordingly.\n--}}\n\n{{#if background}}\n\n<style type=\"text/css\">\n    .responsive-header-img {\n        background-image: url({{img_url background size='xl'}});\n    }\n\n    @media(max-width: 1000px) {\n        .responsive-header-img {\n            background-image: url({{img_url background size='l'}});\n            background-image: -webkit-image-set(url({{img_url background size='l'}}) 1x,\n                url({{img_url background size='xl'}}) 2x);\n            background-image: image-set(url({{img_url background size='l'}}) 1x,\n                url({{img_url background size='xl'}}) 2x);\n        }\n    }\n\n    @media(max-width: 600px) {\n        .responsive-header-img {\n            background-image: url({{img_url background size='m'}});\n            background-image: -webkit-image-set(url({{img_url background size='m'}}) 1x,\n                url({{img_url background size='l'}}) 2x);\n            background-image: image-set(url({{img_url background size='m'}}) 1x,\n                url({{img_url background size='l'}}) 2x);\n        }\n    }\n</style>\n<div class=\"outer site-header-background responsive-header-img\">\n\n{{else}}\n\n<div class=\"outer site-header-background no-image\">\n\n{{/if}}"
  },
  {
    "path": "partials/icons/avatar.hbs",
    "content": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M3.513 18.998C4.749 15.504 8.082 13 12 13s7.251 2.504 8.487 5.998C18.47 21.442 15.417 23 12 23s-6.47-1.558-8.487-4.002zM12 12c2.21 0 4-2.79 4-5s-1.79-4-4-4-4 1.79-4 4 1.79 5 4 5z\" fill=\"#FFF\"/></g></svg>\n"
  },
  {
    "path": "partials/icons/facebook.hbs",
    "content": "<svg viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M16 0c8.837 0 16 7.163 16 16s-7.163 16-16 16S0 24.837 0 16 7.163 0 16 0zm5.204 4.911h-3.546c-2.103 0-4.443.885-4.443 3.934.01 1.062 0 2.08 0 3.225h-2.433v3.872h2.509v11.147h4.61v-11.22h3.042l.275-3.81h-3.397s.007-1.695 0-2.187c0-1.205 1.253-1.136 1.329-1.136h2.054V4.911z\" /></svg>"
  },
  {
    "path": "partials/icons/ghost-logo.hbs",
    "content": "<svg class=\"ghost-svg\" viewBox=\"0 0 493 161\" xmlns=\"http://www.w3.org/2000/svg\"><title>Ghost Logo</title><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M328.52 37.36c-27.017 0-40.97 19.323-40.97 43.16 0 23.837 13.61 43.162 40.97 43.162s40.968-19.325 40.968-43.163c0-23.84-13.954-43.16-40.97-43.16zm20.438 43.237c-.02 15.328-5.126 27.743-20.44 27.743-15.312 0-20.42-12.414-20.435-27.743v-.078c.016-15.33 5.124-27.74 20.437-27.74 15.312 0 20.42 12.41 20.438 27.74v.07zM207.553 5.19c0-1.103.885-2.124 1.984-2.282 0 0 13.577-1.95 14.784-2.115 1.37-.187 3.19.798 3.19 2.744v44.236c3.23-3.105 6.79-5.608 10.66-7.515 3.88-1.906 8.43-2.86 13.66-2.86 4.53 0 8.53.776 12.03 2.33 3.5 1.55 6.43 3.73 8.77 6.533 2.34 2.81 4.12 6.16 5.33 10.05 1.21 3.9 1.82 8.19 1.82 12.87v51.35c0 1.1-.89 2-2 2h-15.95c-1.1 0-2-.9-2-1.99V69.18c0-5.118-1.17-9.08-3.51-11.888-2.35-2.804-5.86-4.207-10.544-4.207-3.45 0-6.677.79-9.69 2.37-3.02 1.58-5.87 3.73-8.564 6.46v58.617c0 1.102-.894 2-2.002 2h-15.94c-1.11 0-2.005-.895-2.005-2V5.188zm244.007 95.327v-43.68h-13.482c-1.1 0-1.742-.87-1.443-1.916l3-10.49c.262-.9.942-1.87 2.308-2.07l9.597-1.35 3.508-23.49c.163-1.09 1.18-2.1 2.274-2.26 0 0 9.192-1.31 10.963-1.58 1.673-.25 3.19.97 3.19 2.81v24.52h17.565c1.106 0 2.002.9 2.002 2.01v11.82c0 1.11-.89 2.01-2.002 2.01h-17.566v43.08c0 6.02 3.623 8.32 7.095 8.32 2.12 0 5.02-1.14 7.19-2.16 1.34-.62 3.41-.16 3.95 1.73l2.45 8.65c.3 1.07-.25 2.37-1.23 2.86 0 0-7.29 4.37-17.06 4.37-13.73 0-22.33-8.08-22.33-23.16zm-44.584-47.74c-7.084 0-12.657 2.476-12.657 8.433 0 7.44 12.01 9.606 20.23 12.64 5.49 2.027 20.24 5.98 20.24 22.016 0 19.48-16 27.807-33.06 27.807-17.06 0-25.4-5.465-25.4-5.465-.96-.527-1.5-1.822-1.2-2.89 0 0 2.1-7.52 2.64-9.386.48-1.68 2.41-2.27 3.64-1.792 4.39 1.712 12.32 4.092 21.28 4.092 9.07 0 13.46-2.803 13.46-8.777 0-7.95-12.26-10.38-20.36-12.967-5.59-1.78-20.36-5.93-20.36-23.566 0-17.373 15.08-25.524 31.2-25.524 13.64 0 23.5 4.69 23.5 4.69 1.01.427 1.58 1.635 1.28 2.698l-2.658 9.357c-.488 1.74-1.898 2.537-3.666 1.957-3.89-1.277-11.2-3.322-18.15-3.322zm-210.313-15.28c-6.695.775-11.472 3.962-14.562 6.93-6.06-4.81-14.49-7.106-23.94-7.106-18.95 0-33.76 9.26-33.76 29.43 0 11.58 4.88 19.56 12.62 24.26-5.75 2.75-9.57 8.59-9.57 14.34 0 9.61 7.5 12.61 7.5 12.61s-13.11 6.44-13.11 19.32c0 16.49 15.01 23.16 33.34 23.16 26.43 0 44.61-11.04 44.61-31.31 0-12.47-9.44-19.36-30.01-20.18-12.2-.48-20.11-.93-22.07-1.58-2.59-.87-3.86-2.96-3.86-5.28 0-2.55 2.08-4.98 5.35-6.65 2.86.516 5.87.768 8.99.768 18.97 0 33.76-9.223 33.76-29.425 0-4.897-.87-9.15-2.46-12.78 2.79-1.506 8.34-2.25 8.34-2.25 1.09-.17 1.975-1.21 1.974-2.31V40.3c0-1.88-1.59-2.955-3.1-2.78zm-49.13 85.132s9.954.38 19.9.84c11.172.52 14.654 2.96 14.654 8.81 0 7.15-9.71 14.1-23.28 14.1-12.88 0-19.314-4.54-19.314-12.08 0-4.33 2.26-9.18 8.04-11.69zm10.66-40.54c-8.978 0-15.983-4.83-15.983-15.35 0-10.53 7.01-15.35 15.983-15.35 8.974 0 15.984 4.81 15.984 15.34 0 10.53-7.002 15.34-15.984 15.34z\" fill=\"#2D3134\"/><g opacity=\".6\" transform=\"translate(0 36)\" fill=\"#2E3134\"><rect x=\".209\" y=\"69.017\" width=\"33.643\" height=\"17.014\" rx=\"4\"/><rect x=\"50.672\" y=\"69.017\" width=\"33.622\" height=\"17.014\" rx=\"4\"/><rect x=\".184\" y=\"34.99\" width=\"84.121\" height=\"17.014\" rx=\"4\"/><rect x=\".209\" y=\".964\" width=\"50.469\" height=\"17.013\" rx=\"4\"/><rect x=\"67.494\" y=\".964\" width=\"16.821\" height=\"17.013\" rx=\"4\"/></g></g></svg>\n"
  },
  {
    "path": "partials/icons/infinity.hbs",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 14.5s2 3 5 3 5.5-2.463 5.5-5.5S21 6.5 18 6.5c-5 0-7 11-12 11C2.962 17.5.5 15.037.5 12S3 6.5 6 6.5s4.5 3.5 4.5 3.5\"/></svg>\n"
  },
  {
    "path": "partials/icons/loader.hbs",
    "content": "<svg version=\"1.1\" id=\"loader-1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\"\n    y=\"0px\" width=\"40px\" height=\"40px\" viewBox=\"0 0 40 40\" enable-background=\"new 0 0 40 40\" xml:space=\"preserve\">\n    <path opacity=\"0.2\" fill=\"#000\" d=\"M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946\ns14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634\nc0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z\" />\n    <path fill=\"#000\" d=\"M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0\nC22.32,8.481,24.301,9.057,26.013,10.047z\">\n        <animateTransform attributeType=\"xml\" attributeName=\"transform\" type=\"rotate\" from=\"0 20 20\" to=\"360 20 20\"\n            dur=\"0.5s\" repeatCount=\"indefinite\" />\n    </path>\n</svg>"
  },
  {
    "path": "partials/icons/location.hbs",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-miterlimit=\"10\" fill=\"none\"><path d=\"M19.5 8c0 4.144-7.5 15.5-7.5 15.5S4.5 12.144 4.5 8C4.5 3.858 7.857.5 12 .5c4.142 0 7.5 3.358 7.5 7.5z\"/><circle cx=\"12\" cy=\"8\" r=\"3\"/></svg>\n"
  },
  {
    "path": "partials/icons/point.hbs",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n    <path d=\"M7.5 15.5V4a1.5 1.5 0 1 1 3 0v4.5h2a1 1 0 0 1 1 1h2a1 1 0 0 1 1 1H18a1.5 1.5 0 0 1 1.5 1.5v3.099c0 .929-.13 1.854-.385 2.748L17.5 23.5h-9c-1.5-2-5.417-8.673-5.417-8.673a1.2 1.2 0 0 1 1.76-1.605L7.5 15.5zm6-6v2m-3-3.5v3.5m6-1v2\"/>\n</svg>\n"
  },
  {
    "path": "partials/icons/rss.hbs",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><circle cx=\"6.18\" cy=\"17.82\" r=\"2.18\"/><path d=\"M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z\"/></svg>\n"
  },
  {
    "path": "partials/icons/twitter.hbs",
    "content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path d=\"M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z\"/></svg>\n"
  },
  {
    "path": "partials/navigation.hbs",
    "content": "{{#if isSecondary}}\n    {{!-- secondary navigation --}}\n        {{#foreach navigation}}\n            <a class=\"{{link_class for=(url) class=(concat \"nav-\" slug)}}\" href=\"{{url absolute=\"true\"}}\">{{label}}</a>\n        {{/foreach}}\n{{else}}\n    {{!-- primary navigation --}}\n    <ul class=\"nav\">\n        {{#foreach navigation}}\n            <li class=\"{{link_class for=(url) class=(concat \"nav-\" slug)}}\"><a href=\"{{url absolute=\"true\"}}\">{{label}}</a></li>\n        {{/foreach}}\n    </ul>\n{{/if}}\n"
  },
  {
    "path": "partials/notifications.hbs",
    "content": "<div class=\"notification notification-subscribe\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    You've successfully subscribed to {{@site.title}}\n</div>\n\n<div class=\"notification notification-signup\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    Great! Next, complete checkout for full access to {{@site.title}}\n</div>\n\n<div class=\"notification notification-signin\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    Welcome back! You've successfully signed in.\n</div>\n\n<div class=\"notification notification-signin-failure\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    Unable to sign you in. Please try again.\n</div>\n\n<div class=\"notification notification-checkout\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    Success! Your account is fully activated, you now have access to all content.\n</div>\n\n<div class=\"notification notification-billing-update\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    Success! Your billing info is updated.\n</div>\n\n<div class=\"notification notification-billing-update-cancel\">\n    <a class=\"notification-close\" href=\"javascript:;\"></a>\n    Billing info update failed.\n</div>"
  },
  {
    "path": "partials/post-card.hbs",
    "content": "<article class=\"post-card {{post_class}} {{#unless feature_image}}no-image{{else}}{{#is \"home\"}}{{#has index=\"nth:6\"}}post-card-large{{/has}}{{/is}}{{/unless}}\">\n\n    {{#if feature_image}}\n    <a class=\"post-card-image-link\" href=\"{{url}}\">\n        {{!-- This is a responsive image, it loads different sizes depending on device\n        https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}\n        <img class=\"post-card-image\"\n            srcset=\"{{img_url feature_image size=\"s\"}} 300w,\n                    {{img_url feature_image size=\"m\"}} 600w,\n                    {{img_url feature_image size=\"l\"}} 1000w,\n                    {{img_url feature_image size=\"xl\"}} 2000w\"\n            sizes=\"(max-width: 1000px) 400px, 700px\"\n            src=\"{{img_url feature_image size=\"m\"}}\"\n            loading=\"lazy\"\n            alt=\"{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}\"\n        />\n    </a>\n    {{/if}}\n\n    <div class=\"post-card-content\">\n\n        <a class=\"post-card-content-link\" href=\"{{url}}\">\n\n            <header class=\"post-card-header\">\n                <div class=\"post-card-header-tags\">\n                    <span class=\"post-visibility post-visibility-{{visibility}}\">Free Post</span>\n                    {{#if primary_tag}}\n                        {{#primary_tag}}\n                            <div class=\"post-card-primary-tag\">{{name}}</div>\n                        {{/primary_tag}}\n                    {{/if}}\n\n                </div>\n                <h2 class=\"post-card-title\">{{title}}</h2>\n            </header>\n\n            <section class=\"post-card-excerpt\">\n                {{#if feature_image}}\n                    <p>{{excerpt words=\"30\"}}</p>\n                {{else}}\n                    <p>{{excerpt words=\"44\"}}</p>\n                {{/if}}\n            </section>\n\n        </a>\n\n        <footer class=\"post-card-meta\">\n            <ul class=\"author-list\">\n                {{#foreach authors}}\n                <li class=\"author-list-item\">\n\n                    <div class=\"author-name-tooltip\">\n                        {{name}}\n                    </div>\n\n                    {{#if profile_image}}\n                    <a href=\"{{url}}\" class=\"static-avatar\">\n                        <img class=\"author-profile-image\" src=\"{{img_url profile_image size=\"xs\"}}\" alt=\"{{name}}\" />\n                    </a>\n                    {{else}}\n                    <a href=\"{{url}}\" class=\"static-avatar author-profile-image\">{{> \"icons/avatar\"}}</a>\n                    {{/if}}\n                </li>\n                {{/foreach}}\n            </ul>\n            <div class=\"post-card-byline-content\">\n                <span>{{#has author=\"count:>2\"}}Multiple authors{{else}}{{authors}}{{/has}}</span>\n                <span class=\"post-card-byline-date\"><time datetime=\"{{date format=\"YYYY-MM-DD\"}}\">{{date format=\"D MMM YYYY\"}}</time> <span class=\"bull\">&bull;</span> {{reading_time}}</span>\n            </div>\n        </footer>\n\n    </div>{{!--/.post-card-content--}}\n\n</article>\n"
  },
  {
    "path": "partials/site-header.hbs",
    "content": "<div class=\"outer site-nav-main\">\n    <div class=\"inner\">\n        {{> \"site-nav\"}}\n    </div>\n</div>"
  },
  {
    "path": "partials/site-nav.hbs",
    "content": "<nav class=\"site-nav\">\n    <div class=\"site-nav-left\">\n        <div class=\"site-nav-left-content\">\n            {{#if @site.logo}}\n                <a class=\"site-nav-logo\" href=\"{{@site.url}}\"><img src=\"{{@site.logo}}\" alt=\"{{@site.title}}\" /></a>\n            {{else}}\n                <a class=\"site-nav-logo\" href=\"{{@site.url}}\">{{@site.title}}</a>\n            {{/if}}\n            <div class=\"site-nav-content\">\n                {{#if @site.navigation}}\n                    {{navigation}}\n                {{/if}}\n                {{#is \"post\"}}\n                    <span class=\"nav-post-title {{#unless @site.logo}}dash{{/unless}}\">{{post.title}}</span>\n                {{/is}}\n            </div>\n        </div>\n    </div>\n    <div class=\"site-nav-right\">\n        {{#if @member}}\n            <div class=\"account-menu\">\n                <a href=\"javascript:\" class=\"account-menu-avatar\" id=\"account-menu\" type=\"checkbox\" name=\"menu\">\n                    {{> \"icons/avatar\"}}\n                    {{#if @member.avatar_image}}\n                        <img src=\"{{@member.avatar_image}}\" />\n                    {{/if}}\n                </a>\n                <ul class=\"account-menu-dropdown\">\n                    <li class=\"account-info\">\n                        <small>Signed in as</small>\n                        <span class=\"account-email\" title=\"{{@member.email}}\">{{@member.email}}</span>\n                    </li>\n                    <li><a href=\"{{@site.url}}/account/\">Account</a></li>\n                    <li><a href=\"javascript:\" data-members-signout>Log out</a></li>\n                </ul>\n            </div>\n        {{else}}\n            <a class=\"signin-link\" href=\"{{@site.url}}/signin/\">Log in</a>\n            <a class=\"button primary small header-cta\" href=\"{{@site.url}}/signup/\">Subscribe</a>\n        {{/if}}\n    </div>\n</nav>\n"
  },
  {
    "path": "partials/subscribe-form.hbs",
    "content": "<section class=\"subscribe-form\">\n    <h3 class=\"subscribe-form-title\">Subscribe to {{@site.title}}</h3>\n    <p class=\"subscribe-form-description\">Get the latest posts delivered right to your inbox</p>\n    <form data-members-form=\"subscribe\">\n        <div class=\"form-group\">\n            <input class=\"subscribe-email\" data-members-email placeholder=\"youremail@example.com\" autocomplete=\"false\" />\n            <button class=\"button primary\" type=\"submit\">\n                <span class=\"button-content\">Subscribe</span>\n                <span class=\"button-loader\">{{> \"icons/loader\"}}</span>\n            </button>\n        </div>\n        <div class=\"message-success\">\n            <strong>Great!</strong> Check your inbox and click the link to confirm your subscription.\n        </div>\n        <div class=\"message-error\">\n            Please enter a valid email address!\n        </div>\n    </form>\n</section>"
  },
  {
    "path": "post.hbs",
    "content": "{{!< default}}\n\n{{!-- The tag above means: insert everything in this file\ninto the {body} of the default.hbs template --}}\n\n<header class=\"site-header\">\n    {{> site-header}}\n</header>\n\n{{!-- Everything inside the #post tags pulls data from the post --}}\n{{#post}}\n\n<main id=\"site-main\" class=\"site-main outer\">\n    <div class=\"inner\">\n\n        <article class=\"post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}\">\n\n            <header class=\"post-full-header\">\n\n                {{#if primary_tag}}\n                <section class=\"post-full-tags\">\n                    {{#primary_tag}}\n                    <a href=\"{{url}}\">{{name}}</a>\n                    {{/primary_tag}}\n                </section>\n                {{/if}}\n\n                <h1 class=\"post-full-title\">{{title}}</h1>\n\n                {{#if custom_excerpt}}\n                <p class=\"post-full-custom-excerpt\">{{custom_excerpt}}</p>\n                {{/if}}\n\n                <div class=\"post-full-byline\">\n\n                    <section class=\"post-full-byline-content\">\n\n                        <ul class=\"author-list\">\n                            {{#foreach authors}}\n                            <li class=\"author-list-item\">\n\n                                <div class=\"author-card\">\n                                    {{#if profile_image}}\n                                    <img class=\"author-profile-image\" src=\"{{img_url profile_image size=\"xs\"}}\" alt=\"{{name}}\" />\n                                    {{else}}\n                                    <div class=\"author-profile-image\">{{> \"icons/avatar\"}}</div>\n                                    {{/if}}\n                                    <div class=\"author-info\">\n                                        {{#if bio}}\n                                        <div class=\"bio\">\n                                            <h2>{{name}}</h2>\n                                            <p>{{bio}}</p>\n                                            <p><a href=\"{{url}}\">More posts</a> by {{name}}.</p>\n                                        </div>\n                                        {{else}}\n                                        <h2>{{name}}</h2>\n                                        <p>Read <a href=\"{{url}}\">more posts</a> by this author.</p>\n                                        {{/if}}\n                                    </div>\n                                </div>\n\n                                {{#if profile_image}}\n                                <a href=\"{{url}}\" class=\"author-avatar\">\n                                    <img class=\"author-profile-image\" src=\"{{img_url profile_image size=\"xs\"}}\" alt=\"{{name}}\" />\n                                </a>\n                                {{else}}\n                                <a href=\"{{url}}\" class=\"author-avatar author-profile-image\">{{> \"icons/avatar\"}}</a>\n                                {{/if}}\n\n                            </li>\n                            {{/foreach}}\n                        </ul>\n\n                        <section class=\"post-full-byline-meta\">\n                            <h4 class=\"author-name\">{{authors}}</h4>\n                            <div class=\"byline-meta-content\">\n                                <time class=\"byline-meta-date\" datetime=\"{{date format=\"YYYY-MM-DD\"}}\">{{date format=\"D MMM YYYY\"}}</time>\n                                <span class=\"byline-reading-time\"><span class=\"bull\">&bull;</span> {{reading_time}}</span>\n                            </div>\n                        </section>\n\n                    </section>\n\n\n                </div>\n            </header>\n\n            {{#if feature_image}}\n            <figure class=\"post-full-image\">\n                {{!-- This is a responsive image, it loads different sizes depending on device\n                https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}}\n                <img\n                    srcset=\"{{img_url feature_image size=\"s\"}} 300w,\n                            {{img_url feature_image size=\"m\"}} 600w,\n                            {{img_url feature_image size=\"l\"}} 1000w,\n                            {{img_url feature_image size=\"xl\"}} 2000w\"\n                    sizes=\"(max-width: 800px) 400px,\n                        (max-width: 1170px) 1170px,\n                            2000px\"\n                    src=\"{{img_url feature_image size=\"xl\"}}\"\n                    alt=\"{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}\"\n                />\n                {{#if feature_image_caption}}\n                    <figcaption>{{feature_image_caption}}</figcaption>\n                {{/if}}\n            </figure>\n            {{/if}}\n\n            <section class=\"post-full-content\">\n                <div class=\"post-content\">\n                    {{content}}\n                </div>\n            </section>\n\n            {{!--\n            <section class=\"post-full-comments\">\n                If you want to embed comments, this is a good place to do it!\n            </section>\n            --}}\n\n        </article>\n\n    </div>\n</main>\n\n{{!-- Links to Previous/Next posts --}}\n<aside class=\"read-next outer\">\n    <div class=\"inner\">\n        <div class=\"read-next-feed\">\n            {{#if primary_tag}}\n            {{#get \"posts\" filter=\"tags:{{primary_tag.slug}}+id:-{{id}}\" limit=\"3\" as |related_posts|}}\n                {{#if related_posts}}\n                <article class=\"read-next-card\">\n                    <header class=\"read-next-card-header\">\n                        {{#../primary_tag}}\n                        <h3><span>More in</span> <a href=\"{{url}}\">{{name}}</a></h3>\n                        {{/../primary_tag}}\n                    </header>\n                    <div class=\"read-next-card-content\">\n                        <ul>\n                            {{#foreach related_posts}}\n                            <li>\n                                <h4><a href=\"{{url}}\">{{title}}</a></h4>\n                                <div class=\"read-next-card-meta\">\n                                    <p><time datetime=\"{{date format=\"YYYY-MM-DD\"}}\">{{date format=\"D MMM YYYY\"}}</time> –\n                                        {{reading_time}}</p>\n                                </div>\n                            </li>\n                            {{/foreach}}\n                        </ul>\n                    </div>\n                    <footer class=\"read-next-card-footer\">\n                        <a href=\"{{#../primary_tag}}{{url}}{{/../primary_tag}}\">{{plural meta.pagination.total empty='No posts' singular='% post' plural='See all % posts'}}\n                            →</a>\n                    </footer>\n                </article>\n                {{/if}}\n            {{/get}}\n            {{/if}}\n\n            {{!-- If there's a next post, display it using the same markup included from - partials/post-card.hbs --}}\n            {{#next_post}}\n                {{> \"post-card\"}}\n            {{/next_post}}\n\n            {{!-- If there's a previous post, display it using the same markup included from - partials/post-card.hbs --}}\n            {{#prev_post}}\n                {{> \"post-card\"}}\n            {{/prev_post}}\n        </div>\n    </div>\n</aside>\n\n{{!-- Floating header which appears on-scroll, included from includes/floating-header.hbs --}}\n{{!-- {{> floating-header}} --}}\n\n{{/post}}\n\n{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}}\n{{#contentFor \"scripts\"}}\n<script>\n\n// NOTE: Scroll performance is poor in Safari\n// - this appears to be due to the events firing much more slowly in Safari.\n//   Dropping the scroll event and using only a raf loop results in smoother\n//   scrolling but continuous processing even when not scrolling\n$(document).ready(function () {\n    // Start fitVids\n    var $postContent = $(\".post-full-content\");\n    $postContent.fitVids();\n    // End fitVids\n\n    var nav = document.querySelector('.site-nav-main');\n    var title = document.querySelector('.post-full-title');\n\n    var lastScrollY = window.scrollY;\n    var lastWindowHeight = window.innerHeight;\n    var lastDocumentHeight = $(document).height();\n    var ticking = false;\n\n    function onScroll() {\n        lastScrollY = window.scrollY;\n        requestTick();\n    }\n\n    function onResize() {\n        lastWindowHeight = window.innerHeight;\n        lastDocumentHeight = $(document).height();\n        requestTick();\n    }\n\n    function requestTick() {\n        if (!ticking) {\n            requestAnimationFrame(update);\n        }\n        ticking = true;\n    }\n\n    function update() {\n        var trigger = title.getBoundingClientRect().top + window.scrollY;\n        var triggerOffset = title.offsetHeight + 35;\n        var progressMax = lastDocumentHeight - lastWindowHeight;\n\n        // show/hide post title\n        if (lastScrollY >= trigger + triggerOffset) {\n            nav.classList.add('nav-post-title-active');\n        } else {\n            nav.classList.remove('nav-post-title-active');\n        }\n\n        ticking = false;\n    }\n\n    window.addEventListener('scroll', onScroll, {passive: true});\n    window.addEventListener('resize', onResize, false);\n\n    update();\n\n\n    // Hover on avatar\n    var hoverTimeout;\n\n    $('.author-list-item').hover(function () {\n        var $this = $(this);\n\n        clearTimeout(hoverTimeout);\n\n        $('.author-card').removeClass('hovered');\n        $(this).children('.author-card').addClass('hovered');\n\n    }, function () {\n        var $this = $(this);\n\n        hoverTimeout = setTimeout(function () {\n            $this.children('.author-card').removeClass('hovered');\n        }, 800);\n    });\n\n});\n</script>\n{{/contentFor}}\n"
  },
  {
    "path": "renovate.json",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\"github>TryGhost/renovate-config\"]\n}\n"
  },
  {
    "path": "routes.yaml",
    "content": "routes:\n  /signup/: members/signup\n  /signin/: members/signin\n  /account/: members/account\n\ncollections:\n  /:\n    permalink: /{slug}/\n    template: index\n\ntaxonomies:\n  tag: /tag/{slug}/\n  author: /author/{slug}/\n"
  },
  {
    "path": "tag.hbs",
    "content": "{{!< default}}\n{{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}\n\n{{#tag}}\n<header class=\"site-archive-header\">\n    {{> site-header}}\n    {{> header-background background=feature_image}} {{!--Special header-image.hbs partial to generate the background image--}}\n        <div class=\"inner site-header-content\">\n            <h1 class=\"site-title\">{{name}}</h1>\n            <h2 class=\"site-description\">\n                {{#if description}}\n                    {{description}}\n                {{else}}\n                    A collection of {{plural ../pagination.total empty='posts' singular='% post' plural='% posts'}}\n                {{/if}}\n            </h2>\n        </div>\n    </div>\n</header>\n{{/tag}}\n\n{{!-- The main content area --}}\n<main id=\"site-main\" class=\"site-main outer\">\n    <div class=\"inner posts\">\n        <div class=\"post-feed\">\n            {{#foreach posts}}\n                {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}}\n                {{> \"post-card\"}}\n            {{/foreach}}\n        </div>\n    </div>\n</main>\n"
  }
]