├── assets ├── images │ ├── preloader.gif │ ├── default-skin.png │ └── default-skin.svg ├── fonts │ ├── inter-v8-latin-600.woff │ ├── inter-v8-latin-600.woff2 │ ├── inter-v8-latin-700.woff │ ├── inter-v8-latin-700.woff2 │ ├── lora-v23-latin-700.woff │ ├── lora-v23-latin-700.woff2 │ ├── lora-v23-latin-italic.woff │ ├── inter-v8-latin-regular.woff │ ├── inter-v8-latin-regular.woff2 │ ├── lora-v23-latin-700italic.woff │ ├── lora-v23-latin-italic.woff2 │ ├── lora-v23-latin-regular.woff │ ├── lora-v23-latin-regular.woff2 │ └── lora-v23-latin-700italic.woff2 ├── css │ ├── site │ │ ├── header.css │ │ └── layout.css │ ├── misc │ │ └── pswp.css │ ├── blog │ │ ├── article.css │ │ ├── related.css │ │ ├── post.css │ │ └── feed.css │ ├── general │ │ ├── vars.css │ │ ├── fonts.css │ │ └── masonry.css │ └── screen.css ├── js │ ├── main.js │ └── lib │ │ └── masonry.pkgd.min.js └── built │ ├── screen.css │ └── screen.css.map ├── partials ├── icons │ ├── search.hbs │ └── maximize.hbs ├── related-posts.hbs ├── feature-image.hbs ├── loop.hbs └── pswp.hbs ├── index.hbs ├── page.hbs ├── post.hbs ├── LICENSE ├── README.md ├── package.json ├── gulpfile.js └── default.hbs /assets/images/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/images/preloader.gif -------------------------------------------------------------------------------- /assets/images/default-skin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/images/default-skin.png -------------------------------------------------------------------------------- /assets/fonts/inter-v8-latin-600.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/inter-v8-latin-600.woff -------------------------------------------------------------------------------- /assets/fonts/inter-v8-latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/inter-v8-latin-600.woff2 -------------------------------------------------------------------------------- /assets/fonts/inter-v8-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/inter-v8-latin-700.woff -------------------------------------------------------------------------------- /assets/fonts/inter-v8-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/inter-v8-latin-700.woff2 -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-700.woff -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-700.woff2 -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-italic.woff -------------------------------------------------------------------------------- /assets/fonts/inter-v8-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/inter-v8-latin-regular.woff -------------------------------------------------------------------------------- /assets/fonts/inter-v8-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/inter-v8-latin-regular.woff2 -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-700italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-700italic.woff -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-italic.woff2 -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-regular.woff -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-regular.woff2 -------------------------------------------------------------------------------- /assets/fonts/lora-v23-latin-700italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/Edge/HEAD/assets/fonts/lora-v23-latin-700italic.woff2 -------------------------------------------------------------------------------- /assets/css/site/header.css: -------------------------------------------------------------------------------- 1 | .gh-head-menu, 2 | .gh-head-link { 3 | font-size: 1.5rem; 4 | font-weight: 600; 5 | letter-spacing: -0.009em; 6 | } 7 | -------------------------------------------------------------------------------- /assets/css/misc/pswp.css: -------------------------------------------------------------------------------- 1 | .pswp__bg { 2 | background: rgba(255, 255, 255, 0.9); 3 | } 4 | 5 | .pswp__caption__center { 6 | color: var(--color-darker-gray); 7 | } 8 | -------------------------------------------------------------------------------- /partials/icons/search.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 | 5 |
6 |
7 | {{#foreach posts}} 8 | {{> "loop"}} 9 | {{/foreach}} 10 |
11 | 12 |
-------------------------------------------------------------------------------- /assets/css/site/layout.css: -------------------------------------------------------------------------------- 1 | .site { 2 | display: flex; 3 | flex-direction: column; 4 | min-height: 100vh; 5 | } 6 | 7 | .site-content { 8 | flex-grow: 1; 9 | padding: 48px 0 96px; 10 | } 11 | 12 | .page-template .site-content { 13 | padding-block: 0; 14 | } 15 | -------------------------------------------------------------------------------- /assets/css/blog/article.css: -------------------------------------------------------------------------------- 1 | .gh-article-image { 2 | margin: 0 0 64px; 3 | } 4 | 5 | .gh-article-title { 6 | font-size: 3.2rem; 7 | } 8 | 9 | .gh-article-excerpt { 10 | margin-top: 16px; 11 | font-size: 1.8rem; 12 | } 13 | 14 | .gh-content { 15 | margin-top: 28px; 16 | } 17 | -------------------------------------------------------------------------------- /assets/css/general/vars.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; 3 | --font-serif: Lora, Times, serif; 4 | --color-primary-text: #15171a; 5 | --content-width: 640px; 6 | --content-font-size: 1.6rem; 7 | --grid-gap: 16px; 8 | } 9 | -------------------------------------------------------------------------------- /assets/css/blog/related.css: -------------------------------------------------------------------------------- 1 | .related-posts { 2 | margin-top: 96px; 3 | } 4 | 5 | .related-title { 6 | margin: 0 var(--grid-gap) 24px; 7 | font-size: 2.4rem; 8 | font-weight: 600; 9 | } 10 | 11 | @media (max-width: 767px) { 12 | .related-posts { 13 | margin-top: 60px; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /partials/icons/maximize.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/css/screen.css: -------------------------------------------------------------------------------- 1 | @import "@tryghost/shared-theme-assets/assets/css/v1/screen.css"; 2 | @import "general/fonts.css"; 3 | @import "general/vars.css"; 4 | @import "general/masonry.css"; 5 | @import "site/layout.css"; 6 | @import "site/header.css"; 7 | @import "blog/feed.css"; 8 | @import "blog/post.css"; 9 | @import "blog/article.css"; 10 | @import "blog/related.css"; 11 | @import "misc/pswp.css"; 12 | -------------------------------------------------------------------------------- /partials/related-posts.hbs: -------------------------------------------------------------------------------- 1 | {{#get "posts" limit="15" filter="tags:[{{post.tags}}]+id:-{{post.id}}" as |related|}} 2 | {{#if related}} 3 | 14 | {{/if}} 15 | {{/get}} -------------------------------------------------------------------------------- /partials/feature-image.hbs: -------------------------------------------------------------------------------- 1 | {{#if feature_image}} 2 |
3 | {{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}} 11 | 12 | {{#if feature_image_caption}} 13 |
{{feature_image_caption}}
14 | {{/if}} 15 |
16 | {{/if}} -------------------------------------------------------------------------------- /page.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 |
5 | 6 | {{#post}} 7 | 8 |
9 | 10 | {{#match @page.show_title_and_feature_image}} 11 |
12 | {{> "feature-image"}} 13 | 14 |

{{title}}

15 | 16 | {{#if custom_excerpt}} 17 |
{{custom_excerpt}}
18 | {{/if}} 19 |
20 | {{/match}} 21 | 22 |
23 | {{content}} 24 |
25 |
26 | 27 | {{/post}} 28 | 29 |
30 |
-------------------------------------------------------------------------------- /assets/css/blog/post.css: -------------------------------------------------------------------------------- 1 | .post-caption { 2 | display: none; 3 | } 4 | 5 | .post-link { 6 | display: block; 7 | } 8 | 9 | .post-link:hover { 10 | opacity: 1; 11 | } 12 | 13 | .post-lightbox { 14 | position: absolute; 15 | right: 15px; 16 | bottom: 15px; 17 | display: flex; 18 | align-items: center; 19 | justify-content: center; 20 | width: 30px; 21 | height: 30px; 22 | line-height: 30px; 23 | text-align: center; 24 | background-color: var(--color-white); 25 | border-radius: 50%; 26 | box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); 27 | opacity: 0; 28 | transition: opacity 0.2s ease, transform 0.2s ease; 29 | transform: scale(0.8); 30 | } 31 | 32 | .post-link:hover + .post-lightbox, 33 | .post-lightbox:hover { 34 | opacity: 1; 35 | transform: scale(1); 36 | } 37 | -------------------------------------------------------------------------------- /post.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 |
4 |
5 | 6 | {{#post}} 7 | 8 |
9 |
10 | {{> "feature-image"}} 11 | 12 |

{{title}}

13 | 14 | {{#if custom_excerpt}} 15 |
{{custom_excerpt}}
16 | {{/if}} 17 |
18 | 19 |
20 | {{content}} 21 |
22 |
23 | 24 | {{#if comments}} 25 |
26 | {{comments}} 27 |
28 | {{/if}} 29 | 30 | {{/post}} 31 | 32 | {{#if @custom.show_related_posts}} 33 | {{> "related-posts"}} 34 | {{/if}} 35 | 36 |
37 |
-------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013-2025 Ghost Foundation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /assets/css/blog/feed.css: -------------------------------------------------------------------------------- 1 | .post-feed { 2 | margin: 0 auto; 3 | visibility: hidden; 4 | opacity: 0; 5 | transition: opacity 0.3s var(--animation-base); 6 | } 7 | 8 | .post-feed.initialized { 9 | visibility: visible; 10 | opacity: 1; 11 | } 12 | 13 | .post-feed .grid-item { 14 | position: absolute; 15 | width: 330px; 16 | } 17 | 18 | .post-feed .post { 19 | position: relative; 20 | margin: var(--grid-gap); 21 | } 22 | 23 | .post-feed .post-image { 24 | width: 100%; 25 | } 26 | 27 | @media (max-width: 640px) { 28 | .post-feed { 29 | --grid-gap: 4px; 30 | 31 | max-width: calc(100% - (calc(var(--gap) - var(--grid-gap))) * 2); 32 | } 33 | 34 | .post-feed .grid-item { 35 | width: 50%; 36 | } 37 | } 38 | 39 | @media (min-width: 641px) and (max-width: 1019px) { 40 | .post-feed { 41 | --grid-gap: 8px; 42 | 43 | max-width: calc(100% - (calc(var(--gap) - var(--grid-gap))) * 2); 44 | } 45 | 46 | .post-feed .grid-item { 47 | width: calc(100% / 3); 48 | } 49 | } 50 | 51 | @media (min-width: 1020px) { 52 | .post-feed { 53 | max-width: 990px; 54 | } 55 | } 56 | 57 | @media (min-width: 1350px) { 58 | .post-feed { 59 | max-width: 1320px; 60 | } 61 | } 62 | 63 | @media (min-width: 1680px) { 64 | .post-feed { 65 | max-width: 1650px; 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Edge 2 | 3 | A visually aesthetic [Ghost](https://github.com/TryGhost/Ghost) theme designed for creative professionals. Showcase your works with minimal style and presentation. 4 | 5 | **Demo: https://edge.ghost.io** 6 | 7 | # Instructions 8 | 9 | 1. [Download this theme](https://github.com/TryGhost/Edge/archive/main.zip) 10 | 2. Log into Ghost, and go to the `Design` settings area to upload the zip file 11 | 12 | # Development 13 | 14 | Styles 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: 15 | 16 | ```bash 17 | # Install 18 | yarn 19 | 20 | # Run build & watch for changes 21 | yarn dev 22 | ``` 23 | 24 | Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically. 25 | 26 | The `zip` Gulp task packages the theme files into `dist/edge.zip`, which you can then upload to your site. 27 | 28 | ```bash 29 | yarn zip 30 | ``` 31 | 32 | # Contribution 33 | 34 | This repo is synced automatically with [TryGhost/Themes](https://github.com/TryGhost/Themes) monorepo. If you're looking to contribute or raise an issue, head over to the main repository [TryGhost/Themes](https://github.com/TryGhost/Themes) where our official themes are developed. 35 | 36 | # Copyright & License 37 | 38 | Copyright (c) 2013-2025 Ghost Foundation - Released under the [MIT license](LICENSE). 39 | -------------------------------------------------------------------------------- /assets/images/default-skin.svg: -------------------------------------------------------------------------------- 1 | default-skin 2 -------------------------------------------------------------------------------- /partials/loop.hbs: -------------------------------------------------------------------------------- 1 | {{#if feature_image}} 2 |
3 |
4 | 5 | 6 | {{title}} 16 | 17 | 18 | 19 | {{> "icons/maximize"}} 20 | 21 | 22 |
23 |

{{title}}

24 |
25 | {{#primary_tag}} 26 | 27 | {{name}} 28 | 29 | {{/primary_tag}} 30 | 31 | 32 | 33 | 34 | View project 35 | 36 |
37 |
38 | 39 |
40 |
41 | {{/if}} -------------------------------------------------------------------------------- /assets/css/general/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: Inter; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: local(""), url("../fonts/inter-v8-latin-regular.woff2") format("woff2"), url("../fonts/inter-v8-latin-regular.woff") format("woff"); 6 | } 7 | 8 | @font-face { 9 | font-family: Inter; 10 | font-style: normal; 11 | font-weight: 600; 12 | src: local(""), url("../fonts/inter-v8-latin-600.woff2") format("woff2"), url("../fonts/inter-v8-latin-600.woff") format("woff"); 13 | } 14 | 15 | @font-face { 16 | font-family: Inter; 17 | font-style: normal; 18 | font-weight: 700; 19 | src: local(""), url("../fonts/inter-v8-latin-700.woff2") format("woff2"), url("../fonts/inter-v8-latin-700.woff") format("woff"); 20 | } 21 | 22 | @font-face { 23 | font-family: Lora; 24 | font-style: normal; 25 | font-weight: 400; 26 | src: local(""), url("../fonts/lora-v23-latin-regular.woff2") format("woff2"), url("../fonts/lora-v23-latin-regular.woff") format("woff"); 27 | } 28 | 29 | @font-face { 30 | font-family: Lora; 31 | font-style: normal; 32 | font-weight: 700; 33 | src: local(""), url("../fonts/lora-v23-latin-700.woff2") format("woff2"), url("../fonts/lora-v23-latin-700.woff") format("woff"); 34 | } 35 | 36 | @font-face { 37 | font-family: Lora; 38 | font-style: italic; 39 | font-weight: 400; 40 | src: local(""), url("../fonts/lora-v23-latin-italic.woff2") format("woff2"), url("../fonts/lora-v23-latin-italic.woff") format("woff"); 41 | } 42 | 43 | @font-face { 44 | font-family: Lora; 45 | font-style: italic; 46 | font-weight: 700; 47 | src: local(""), url("../fonts/lora-v23-latin-700italic.woff2") format("woff2"), url("../fonts/lora-v23-latin-700italic.woff") format("woff"); 48 | } 49 | -------------------------------------------------------------------------------- /partials/pswp.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "edge", 3 | "description": "A Ghost theme", 4 | "version": "1.0.0", 5 | "private": true, 6 | "engines": { 7 | "ghost": ">=5.0.0" 8 | }, 9 | "license": "MIT", 10 | "author": { 11 | "name": "Ghost Foundation", 12 | "email": "hello@ghost.org", 13 | "url": "https://ghost.org" 14 | }, 15 | "keywords": [ 16 | "ghost", 17 | "theme", 18 | "ghost-theme" 19 | ], 20 | "docs": "https://edge.ghost.io/about/", 21 | "config": { 22 | "posts_per_page": 10, 23 | "image_sizes": { 24 | "xs": { 25 | "width": 150 26 | }, 27 | "s": { 28 | "width": 300 29 | }, 30 | "m": { 31 | "width": 750 32 | }, 33 | "l": { 34 | "width": 1140 35 | }, 36 | "xl": { 37 | "width": 1920 38 | } 39 | }, 40 | "card_assets": true, 41 | "custom": { 42 | "navigation_layout": { 43 | "type": "select", 44 | "options": ["Logo on the left", "Logo in the middle", "Stacked"], 45 | "default": "Logo in the middle" 46 | }, 47 | "title_font": { 48 | "type": "select", 49 | "options": [ 50 | "Modern sans-serif", 51 | "Elegant serif" 52 | ], 53 | "default": "Modern sans-serif" 54 | }, 55 | "body_font": { 56 | "type": "select", 57 | "options": [ 58 | "Modern sans-serif", 59 | "Elegant serif" 60 | ], 61 | "default": "Modern sans-serif" 62 | }, 63 | "show_related_posts": { 64 | "type": "boolean", 65 | "default": true, 66 | "group": "post" 67 | }, 68 | "related_posts_title": { 69 | "type": "text", 70 | "default": "You might also like...", 71 | "group": "post" 72 | } 73 | } 74 | }, 75 | "scripts": { 76 | "dev": "gulp", 77 | "test": "gscan .", 78 | "zip": "gulp zip" 79 | }, 80 | "devDependencies": { 81 | "@tryghost/shared-theme-assets": "2.5.2", 82 | "autoprefixer": "10.4.23", 83 | "beeper": "2.1.0", 84 | "cssnano": "7.1.2", 85 | "gscan": "5.2.1", 86 | "gulp": "5.0.1", 87 | "gulp-concat": "2.6.1", 88 | "gulp-livereload": "4.0.2", 89 | "gulp-postcss": "10.0.0", 90 | "gulp-uglify": "3.0.2", 91 | "gulp-zip": "5.1.0", 92 | "ordered-read-streams": "2.0.0", 93 | "postcss": "8.5.6", 94 | "postcss-easy-import": "4.0.0", 95 | "pump": "3.0.3" 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | const {series, parallel, watch, src, dest} = require('gulp'); 2 | const pump = require('pump'); 3 | const fs = require('fs'); 4 | const order = require('ordered-read-streams'); 5 | 6 | // gulp plugins and utils 7 | const livereload = require('gulp-livereload'); 8 | const postcss = require('gulp-postcss'); 9 | const concat = require('gulp-concat'); 10 | const uglify = require('gulp-uglify'); 11 | const beeper = require('beeper'); 12 | const zip = require('gulp-zip'); 13 | 14 | // postcss plugins 15 | const easyimport = require('postcss-easy-import'); 16 | const autoprefixer = require('autoprefixer'); 17 | const cssnano = require('cssnano'); 18 | 19 | function serve(done) { 20 | livereload.listen(); 21 | done(); 22 | } 23 | 24 | function handleError(done) { 25 | return function (err) { 26 | if (err) { 27 | beeper(); 28 | } 29 | return done(err); 30 | }; 31 | }; 32 | 33 | function hbs(done) { 34 | pump([ 35 | src(['*.hbs', 'partials/**/*.hbs']), 36 | livereload() 37 | ], handleError(done)); 38 | } 39 | 40 | function css(done) { 41 | pump([ 42 | src('assets/css/screen.css', {sourcemaps: true}), 43 | postcss([ 44 | easyimport, 45 | autoprefixer(), 46 | cssnano() 47 | ]), 48 | dest('assets/built/', {sourcemaps: '.'}), 49 | livereload() 50 | ], handleError(done)); 51 | } 52 | 53 | function getJsFiles(version) { 54 | const jsFiles = [ 55 | src(`node_modules/@tryghost/shared-theme-assets/assets/js/${version}/lib/**/*.js`), 56 | src(`node_modules/@tryghost/shared-theme-assets/assets/js/${version}/main.js`), 57 | ]; 58 | 59 | if (fs.existsSync(`assets/js/lib`)) { 60 | jsFiles.push(src(`assets/js/lib/*.js`)); 61 | } 62 | 63 | jsFiles.push(src(`assets/js/main.js`)); 64 | 65 | return jsFiles; 66 | } 67 | 68 | function js(done) { 69 | pump([ 70 | order(getJsFiles('v1'), {sourcemaps: true}), 71 | concat('main.min.js'), 72 | uglify(), 73 | dest('assets/built/', {sourcemaps: '.'}), 74 | livereload() 75 | ], handleError(done)); 76 | } 77 | 78 | function zipper(done) { 79 | const filename = require('./package.json').name + '.zip'; 80 | 81 | pump([ 82 | src([ 83 | '**', 84 | '!node_modules', '!node_modules/**', 85 | '!dist', '!dist/**', 86 | '!yarn-error.log' 87 | ]), 88 | zip(filename), 89 | dest('dist/') 90 | ], handleError(done)); 91 | } 92 | 93 | const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs); 94 | const cssWatcher = () => watch('assets/css/**/*.css', css); 95 | const jsWatcher = () => watch('assets/js/**/*.js', js); 96 | const watcher = parallel(hbsWatcher, cssWatcher, jsWatcher); 97 | const build = series(css, js); 98 | 99 | exports.build = build; 100 | exports.zip = series(build, zipper); 101 | exports.default = series(build, serve, watcher); 102 | -------------------------------------------------------------------------------- /assets/css/general/masonry.css: -------------------------------------------------------------------------------- 1 | .flexmasonry { 2 | display: flex; 3 | flex-flow: column wrap; 4 | align-content: space-between; 5 | } 6 | 7 | .flexmasonry-item { width: 100%; } 8 | .flexmasonry-cols-2 .flexmasonry-item { width: 50%; } 9 | .flexmasonry-cols-3 .flexmasonry-item { width: 33.333%; } 10 | .flexmasonry-cols-4 .flexmasonry-item { width: 25%; } 11 | .flexmasonry-cols-5 .flexmasonry-item { width: 20%; } 12 | .flexmasonry-cols-6 .flexmasonry-item { width: 16.666%; } 13 | .flexmasonry-cols-7 .flexmasonry-item { width: 14.285%; } 14 | .flexmasonry-cols-8 .flexmasonry-item { width: 12.5%; } 15 | 16 | .flexmasonry-cols-2 .flexmasonry-item:nth-child(2n+1) { order: 1; } 17 | .flexmasonry-cols-2 .flexmasonry-item:nth-child(2n) { order: 2; } 18 | 19 | .flexmasonry-cols-3 .flexmasonry-item:nth-child(3n+1) { order: 1; } 20 | .flexmasonry-cols-3 .flexmasonry-item:nth-child(3n+2) { order: 2; } 21 | .flexmasonry-cols-3 .flexmasonry-item:nth-child(3n) { order: 3; } 22 | 23 | .flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+1) { order: 1; } 24 | .flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+2) { order: 2; } 25 | .flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+3) { order: 3; } 26 | .flexmasonry-cols-4 .flexmasonry-item:nth-child(4n) { order: 4; } 27 | 28 | .flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+1) { order: 1; } 29 | .flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+2) { order: 2; } 30 | .flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+3) { order: 3; } 31 | .flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+4) { order: 4; } 32 | .flexmasonry-cols-5 .flexmasonry-item:nth-child(5n) { order: 5; } 33 | 34 | .flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+1) { order: 1; } 35 | .flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+2) { order: 2; } 36 | .flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+3) { order: 3; } 37 | .flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+4) { order: 4; } 38 | .flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+5) { order: 5; } 39 | .flexmasonry-cols-6 .flexmasonry-item:nth-child(6n) { order: 6; } 40 | 41 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+1) { order: 1; } 42 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+2) { order: 2; } 43 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+3) { order: 3; } 44 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+4) { order: 4; } 45 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+5) { order: 5; } 46 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+6) { order: 6; } 47 | .flexmasonry-cols-7 .flexmasonry-item:nth-child(7n) { order: 7; } 48 | 49 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+1) { order: 1; } 50 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+2) { order: 2; } 51 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+3) { order: 3; } 52 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+4) { order: 4; } 53 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+5) { order: 5; } 54 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+6) { order: 6; } 55 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+7) { order: 7; } 56 | .flexmasonry-cols-8 .flexmasonry-item:nth-child(8n) { order: 8; } 57 | 58 | .flexmasonry-break { 59 | flex-basis: 100%; 60 | width: 0 !important; 61 | margin: 0; 62 | content: ""; 63 | } 64 | 65 | .flexmasonry-break-1 { order: 1; } 66 | .flexmasonry-break-2 { order: 2; } 67 | .flexmasonry-break-3 { order: 3; } 68 | .flexmasonry-break-4 { order: 4; } 69 | .flexmasonry-break-5 { order: 5; } 70 | .flexmasonry-break-6 { order: 6; } 71 | .flexmasonry-break-7 { order: 7; } 72 | -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 'use strict'; 3 | feed(); 4 | }); 5 | 6 | function feed() { 7 | 'use strict'; 8 | 9 | var grid = document.querySelector('.post-feed'); 10 | if (!grid) return; 11 | var masonry; 12 | 13 | imagesLoaded(grid, function () { 14 | masonry = new Masonry(grid, { 15 | itemSelector: '.grid-item', 16 | columnWidth: '.grid-sizer', 17 | stamp: '.related-title', 18 | hiddenStyle: {transform: 'translateY(50px)', opacity: 0}, 19 | visibleStyle: {transform: 'translateY(0)', opacity: 1}, 20 | }); 21 | 22 | masonry.on('layoutComplete', function () { 23 | grid.classList.add('initialized'); 24 | }); 25 | 26 | masonry.layout(); 27 | 28 | function callback(items, loadNextPage) { 29 | imagesLoaded(items, function (loaded) { 30 | masonry.appended(items); 31 | masonry.layout(); 32 | loaded.elements.forEach(function (item) { 33 | item.style.visibility = 'visible'; 34 | }); 35 | loadNextPage(); 36 | }); 37 | } 38 | 39 | pagination(true, callback, true); 40 | }); 41 | 42 | pswp( 43 | '.post-feed', 44 | '.post', 45 | '.post-lightbox', 46 | '.post-caption', 47 | false 48 | ); 49 | } 50 | 51 | function pswp(container, element, trigger, caption, isGallery) { 52 | var parseThumbnailElements = function (el) { 53 | var items = [], 54 | gridEl, 55 | linkEl, 56 | item; 57 | 58 | $(el) 59 | .find(element) 60 | .each(function (i, v) { 61 | gridEl = $(v); 62 | linkEl = gridEl.find(trigger); 63 | 64 | item = { 65 | src: isGallery 66 | ? gridEl.find('img').attr('src') 67 | : linkEl.attr('href'), 68 | w: 0, 69 | h: 0, 70 | }; 71 | 72 | if (caption && gridEl.find(caption).length) { 73 | item.title = gridEl.find(caption).html(); 74 | } 75 | 76 | items.push(item); 77 | }); 78 | 79 | return items; 80 | }; 81 | 82 | var openPhotoSwipe = function (index, galleryElement) { 83 | var pswpElement = document.querySelectorAll('.pswp')[0], 84 | gallery, 85 | options, 86 | items; 87 | 88 | items = parseThumbnailElements(galleryElement); 89 | 90 | options = { 91 | closeOnScroll: false, 92 | history: false, 93 | index: index, 94 | shareEl: false, 95 | showAnimationDuration: 0, 96 | showHideOpacity: true, 97 | }; 98 | 99 | gallery = new PhotoSwipe( 100 | pswpElement, 101 | PhotoSwipeUI_Default, 102 | items, 103 | options 104 | ); 105 | gallery.listen('gettingData', function (index, item) { 106 | if (item.w < 1 || item.h < 1) { 107 | // unknown size 108 | var img = new Image(); 109 | img.onload = function () { 110 | // will get size after load 111 | item.w = this.width; // set image width 112 | item.h = this.height; // set image height 113 | gallery.updateSize(true); // reinit Items 114 | }; 115 | img.src = item.src; // let's download image 116 | } 117 | }); 118 | gallery.init(); 119 | }; 120 | 121 | var onThumbnailsClick = function (e) { 122 | e.preventDefault(); 123 | 124 | var index = $(e.target) 125 | .closest(container) 126 | .find(element) 127 | .index($(e.target).closest(element)); 128 | var clickedGallery = $(e.target).closest(container); 129 | 130 | openPhotoSwipe(index, clickedGallery[0]); 131 | 132 | return false; 133 | }; 134 | 135 | $(container).on('click', trigger, function (e) { 136 | onThumbnailsClick(e); 137 | }); 138 | } 139 | -------------------------------------------------------------------------------- /default.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{meta_title}} 8 | 9 | 10 | {{ghost_head}} 11 | 12 | 13 | 14 |
15 | 16 |
17 |
18 | 31 | 32 | 40 | 41 |
42 | {{#unless @site.members_enabled}} 43 | {{^match @custom.navigation_layout "Stacked"}} 44 | 45 | {{/match}} 46 | {{else}} 47 | 48 |
49 | {{#unless @member}} 50 | {{#unless @site.members_invite_only}} 51 | Sign in 52 | Subscribe 53 | {{else}} 54 | Sign in 55 | {{/unless}} 56 | {{else}} 57 | Account 58 | {{/unless}} 59 |
60 | {{/unless}} 61 |
62 |
63 |
64 | 65 |
66 | {{{body}}} 67 |
68 | 69 | 84 | 85 |
86 | 87 | {{> "pswp"}} 88 | 89 | 94 | 95 | 96 | {{ghost_foot}} 97 | 98 | 99 | -------------------------------------------------------------------------------- /assets/js/lib/masonry.pkgd.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Masonry PACKAGED v4.2.2 3 | * Cascading grid layout library 4 | * https://masonry.desandro.com 5 | * MIT License 6 | * by David DeSandro 7 | */ 8 | 9 | !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;oe;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}); -------------------------------------------------------------------------------- /assets/built/screen.css: -------------------------------------------------------------------------------- 1 | :root{--color-primary-text:#333;--color-secondary-text:#999;--color-white:#fff;--color-lighter-gray:#f6f6f6;--color-light-gray:#e6e6e6;--color-mid-gray:#ccc;--color-dark-gray:#444;--color-darker-gray:#15171a;--color-black:#000;--font-sans:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;--font-serif:Georgia,serif;--font-mono:Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--head-nav-gap:2.8rem;--h1-size:4.6rem;--gap:3.6rem;--header-spacing:80px}@media (max-width:767px){:root{--h1-size:3.2rem!important;--gap:2rem;--header-spacing:48px}}*,:after,:before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,h5,h6,p{margin:0}ol[role=list],ul[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{line-height:1.5;min-height:100vh;text-rendering:optimizespeed}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{display:block;max-width:100%}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}html{font-size:62.5%}body{background-color:var(--color-white);color:var(--color-primary-text);font-family:var(--gh-font-body,var(--font-sans));font-size:1.6rem;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{height:auto}a{color:var(--color-darker-gray);text-decoration:none}a:hover{opacity:.8}h1,h2,h3,h4,h5,h6{color:var(--color-darker-gray);font-family:var(--gh-font-heading,var(--font-sans));letter-spacing:-.02em;line-height:1.15}h1{font-size:var(--h1-size)}h2{font-size:2.8rem}h3{font-size:2.4rem}h4{font-size:2.2rem}h5{font-size:2rem}h6{font-size:1.8rem}hr{background-color:var(--color-light-gray);border:0;height:1px;width:100%}blockquote:not([class]){border-left:4px solid var(--ghost-accent-color);padding-left:2rem}figcaption{color:var(--color-secondary-text);font-size:1.4rem;line-height:1.4;margin-top:1.6rem;text-align:center}.kg-width-full figcaption{padding:0 1.6rem}.gh-content figcaption a{color:var(--color-darker-gray);text-decoration:none}pre{background-color:var(--color-lighter-gray);hyphens:none;line-height:1.5;overflow-x:scroll;padding:1.6rem 2.4rem;white-space:pre;-webkit-overflow-scrolling:touch}code{font-family:var(--font-mono);font-size:15px}:not(pre)>code{background-color:var(--color-lighter-gray);border-radius:3px;color:var(--ghost-accent-color);padding:.4rem}iframe{border:0;display:block;overflow:hidden;width:100%}@media (max-width:767px){h2{font-size:2.4rem}h3{font-size:2.1rem}}.gh-site{display:flex;flex-direction:column;min-height:100vh}.gh-main{flex-grow:1;padding-bottom:8rem;padding-top:8rem}.page-template .gh-main{padding-block:0}.gh-outer{padding-left:var(--gap);padding-right:var(--gap)}.gh-inner{margin:0 auto;max-width:var(--container-width,1200px)}.gh-canvas,.kg-width-full.kg-content-wide{--main:min(var(--content-width,720px),100% - var(--gap) * 2);--wide:minmax(0,calc((var(--container-width, 1200px) - var(--content-width, 720px))/2));--full:minmax(var(--gap),1fr);display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end]}.gh-canvas>*{grid-column:main}.kg-content-wide>div,.kg-width-wide{grid-column:wide}.kg-width-full{grid-column:full}.kg-width-full img{width:100%}@media (max-width:767px){#gh-main{padding-bottom:4.8rem;padding-top:4.8rem}}.gh-head{background-color:var(--color-white);height:100px}.gh-head-inner{align-items:center;-moz-column-gap:var(--head-nav-gap);column-gap:var(--head-nav-gap);display:grid;grid-auto-flow:row dense;grid-template-columns:1fr auto auto;height:100%}.gh-head-brand{line-height:1}.gh-head-brand-wrapper{align-items:center;display:flex}.gh-head-logo{font-family:var(--gh-font-heading,var(--font-sans));font-size:2.4rem;font-weight:700;letter-spacing:-.02em;position:relative}.gh-head-logo img{max-height:40px}.gh-head-logo img:nth-child(2){left:0;opacity:0;position:absolute;top:0}.gh-head-menu{display:flex}.gh-head .nav,.gh-head-menu{align-items:center;gap:var(--head-nav-gap)}.gh-head .nav{display:inline-flex;list-style:none;margin:0;padding:0;white-space:nowrap}.gh-head .nav-more-toggle{font-size:inherit;margin:0 -6px;position:relative;text-transform:inherit}.gh-head .nav-more-toggle svg{height:24px;width:24px}.gh-head-actions{align-items:center;display:flex;gap:var(--head-nav-gap);justify-content:flex-end}.gh-head-members{align-items:center;display:flex;gap:20px;white-space:nowrap}.gh-head-btn.gh-btn{font-size:inherit;font-weight:600}.gh-head-btn:not(.gh-btn){align-items:center;color:var(--ghost-accent-color);display:inline-flex}.gh-head-btn svg{height:1.3em;width:1.3em}.gh-search{margin-left:-6px;margin-right:-6px}.gh-search:hover{opacity:.9}.gh-head-brand .gh-search{margin-right:8px}@media (max-width:767px){.gh-head-members{flex-direction:column-reverse;gap:16px;width:100%}.gh-head-actions .gh-search{display:none}}@media (min-width:768px){.gh-head-brand .gh-search{display:none}body:not(.is-dropdown-loaded) .gh-head-menu .nav>li{opacity:0}}.is-head-left-logo .gh-head-inner{grid-template-columns:auto 1fr auto}@media (min-width:992px){.is-head-left-logo .gh-head-menu{margin-left:16px;margin-right:64px}}.is-head-middle-logo .gh-head-inner{grid-template-columns:1fr auto 1fr}.is-head-middle-logo .gh-head-brand{grid-column-start:2}.is-head-middle-logo .gh-head-actions{gap:28px}@media (min-width:992px){.is-head-middle-logo .gh-head-menu{margin-right:64px}}.is-head-stacked .gh-head{height:auto;position:relative}.is-head-stacked .gh-head-inner{grid-template-columns:1fr auto 1fr}.is-head-stacked .gh-head-brand{display:flex;grid-column-start:2;grid-row-start:1;min-height:80px}@media (max-width:767px){.is-head-stacked .gh-head-brand{min-height:unset}}@media (min-width:992px){.is-head-stacked .gh-head-inner{padding:0}.is-head-stacked .gh-head-brand{align-items:center;display:flex;height:80px}.is-head-stacked .gh-head-menu{grid-column:1/4;grid-row-start:2;height:56px;justify-content:center;margin:0 48px}.is-head-stacked .gh-head-menu:after,.is-head-stacked .gh-head-menu:before{background-color:var(--color-light-gray);content:"";height:1px;left:0;position:absolute;top:80px;width:100%}.is-head-stacked .gh-head-menu:after{top:136px}.is-head-stacked .gh-head-actions{grid-column:1/4;grid-row-start:1;justify-content:space-between}}.is-head-transparent .gh-head{background-color:transparent;left:0;position:absolute;right:0;z-index:90}.is-head-transparent .gh-head .nav>li a,.is-head-transparent .gh-head-description,.is-head-transparent .gh-head-link,.is-head-transparent .gh-head-logo,.is-head-transparent .gh-head-logo a,.is-head-transparent .gh-search,.is-head-transparent .gh-social,.is-head-transparent .nav-more-toggle{color:var(--color-white)}.is-head-transparent .gh-burger:after,.is-head-transparent .gh-burger:before{background-color:var(--color-white)}.is-head-transparent .gh-head-btn{background-color:#fff;color:#15171a}.is-head-transparent .gh-head-menu:after,.is-head-transparent .gh-head-menu:before{background-color:hsla(0,0%,100%,.2)}.is-head-transparent #announcement-bar-root{left:0;position:absolute;right:0}.is-head-transparent #announcement-bar-root:not(:empty)+:is(.site,.gh-site) .gh-head{margin-top:48px}.is-head-dark:not(.is-head-transparent) .gh-head{background-color:var(--color-darker-gray)}.is-head-dark:not(.is-head-transparent) .gh-head .nav a,.is-head-dark:not(.is-head-transparent) .gh-head-description,.is-head-dark:not(.is-head-transparent) .gh-head-link,.is-head-dark:not(.is-head-transparent) .gh-head-logo,.is-head-dark:not(.is-head-transparent) .gh-head-logo a,.is-head-dark:not(.is-head-transparent) .gh-search,.is-head-dark:not(.is-head-transparent) .gh-social,.is-head-dark:not(.is-head-transparent) .nav-more-toggle{color:var(--color-white)}.is-head-dark:not(.is-head-transparent) .gh-burger:after,.is-head-dark:not(.is-head-transparent) .gh-burger:before{background-color:var(--color-white)}.is-head-dark:not(.is-head-transparent) .gh-head-btn{background-color:#fff;color:#15171a}.is-head-dark:not(.is-head-transparent) .gh-head-menu:after,.is-head-dark:not(.is-head-transparent) .gh-head-menu:before{background-color:hsla(0,0%,100%,.2)}.is-head-brand:not(.is-head-transparent) .gh-head{background-color:var(--ghost-accent-color)}.is-head-brand:not(.is-head-transparent) .gh-head .nav a,.is-head-brand:not(.is-head-transparent) .gh-head-description,.is-head-brand:not(.is-head-transparent) .gh-head-link,.is-head-brand:not(.is-head-transparent) .gh-head-logo,.is-head-brand:not(.is-head-transparent) .gh-head-logo a,.is-head-brand:not(.is-head-transparent) .gh-search,.is-head-brand:not(.is-head-transparent) .gh-social,.is-head-brand:not(.is-head-transparent) .nav-more-toggle{color:var(--color-white)}.is-head-brand:not(.is-head-transparent) .gh-burger:after,.is-head-brand:not(.is-head-transparent) .gh-burger:before{background-color:var(--color-white)}.is-head-brand:not(.is-head-transparent) .gh-head-btn{background-color:#fff;color:#15171a}.is-head-brand:not(.is-head-transparent) .gh-head-menu:after,.is-head-brand:not(.is-head-transparent) .gh-head-menu:before{background-color:hsla(0,0%,100%,.3)}.gh-dropdown{background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 7px 20px -5px rgba(0,0,0,.15);margin-top:24px;opacity:0;padding:12px 0;position:absolute;right:-16px;text-align:left;top:100%;transform:translate3d(0,6px,0);transition:opacity .3s,transform .2s;visibility:hidden;width:200px;z-index:90}.is-head-middle-logo .gh-dropdown{left:-24px;right:auto}.is-dropdown-mega .gh-dropdown{-moz-column-gap:40px;column-gap:40px;display:grid;grid-auto-flow:column;grid-template-columns:1fr 1fr;padding:20px 32px;width:auto}.is-dropdown-open .gh-dropdown{opacity:1;transform:translateY(0);visibility:visible}.gh-dropdown li a{color:#15171a!important;display:block;padding:6px 20px}.is-dropdown-mega .gh-dropdown li a{padding:8px 0}.gh-burger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;cursor:pointer;display:none;height:30px;margin-right:-3px;padding:0;position:relative;width:30px}.gh-burger:after,.gh-burger:before{background-color:var(--color-darker-gray);content:"";height:1px;left:3px;position:absolute;transition:all .2s cubic-bezier(.04,.04,.12,.96) .1008s;width:24px}.gh-burger:before{top:11px}.gh-burger:after{bottom:11px}.is-head-open .gh-burger:before{top:15px;transform:rotate(45deg)}.is-head-open .gh-burger:after{bottom:14px;transform:rotate(-45deg)}@media (max-width:767px){#gh-head{height:64px}#gh-head .gh-head-inner{gap:48px;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}#gh-head .gh-head-brand{align-items:center;display:grid;grid-column-start:1;grid-template-columns:1fr auto auto;height:64px}#gh-head .gh-head-logo{font-size:2.2rem}.gh-burger{display:block}#gh-head .gh-head-actions,#gh-head .gh-head-menu{justify-content:center;opacity:0;position:fixed;visibility:hidden}#gh-head .gh-head-menu{transform:translateY(0);transition:none}#gh-head .nav{align-items:center;gap:20px;line-height:1.4}#gh-head .nav a{font-size:2.6rem;font-weight:600;text-transform:none}#gh-head .nav li{opacity:0;transform:translateY(-4px)}#gh-head .gh-head-actions{text-align:center}#gh-head :is(.gh-head-btn,.gh-head-link){opacity:0;transform:translateY(8px)}#gh-head .gh-head-btn{font-size:1.8rem;text-transform:none;width:100%}#gh-head .gh-head-btn:not(.gh-btn){font-size:2rem}#gh-main{transition:opacity .4s}.is-head-open #gh-head{height:100%;inset:0;overflow-y:scroll;position:fixed;z-index:3999999;-webkit-overflow-scrolling:touch}.is-head-open:not(.is-head-brand):not(.is-head-dark):not(.is-head-transparent) #gh-head{background-color:var(--color-white)}.is-head-open.is-head-transparent #gh-head,.is-head-open:is(.is-head-transparent,.is-head-brand) #gh-head .gh-head-actions{background-color:var(--ghost-accent-color)}.is-head-open.is-head-dark #gh-head,.is-head-open.is-head-dark #gh-head .gh-head-actions{background-color:var(--color-darker-gray)}.is-head-open #gh-head .gh-head-actions,.is-head-open #gh-head .gh-head-menu{opacity:1;position:static;visibility:visible}.is-head-open #gh-head .nav{display:flex;flex-direction:column}.is-head-open #gh-head .nav li{opacity:1;transform:translateY(0);transition:transform .2s,opacity .2s}.is-head-open #gh-head .gh-head-actions{align-items:center;background-color:var(--color-white);bottom:0;display:inline-flex;flex-direction:column;gap:12px;left:0;padding:var(--gap) 0 calc(var(--gap) + 8px);position:sticky;right:0}.is-head-open #gh-head :is(.gh-head-btn,.gh-head-link){opacity:1;transform:translateY(0);transition:transform .4s,opacity .4s;transition-delay:.2s}.is-head-open #gh-head .gh-head-link{transition-delay:.4s}.is-head-open #gh-main{opacity:0}}.gh-cover{min-height:var(--cover-height,50vh);padding-bottom:6.4rem;padding-top:6.4rem;position:relative}.gh-cover-image{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:-1}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-cover-title{font-family:var(--gh-font-heading,var(--font-serif))}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-cover-description{font-family:var(--gh-font-body,var(--font-serif))}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-card-title{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.01em}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-card-excerpt{font-family:var(--gh-font-body,var(--font-serif))}.gh-card{word-break:break-word}.page-template .gh-article-header{margin-top:var(--header-spacing,80px)}.gh-article-tag{color:var(--ghost-accent-color)}.gh-article-title{word-break:break-word}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-article-title{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.01em}.gh-article-excerpt{color:var(--color-secondary-text);font-size:2.1rem;line-height:1.5;margin-top:2rem}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-article-excerpt{font-family:var(--gh-font-body,var(--font-serif))}.gh-article-image{grid-column:wide-start/wide-end;margin-top:4rem}.gh-article-image img{width:100%}@media (max-width:767px){.gh-article-excerpt{font-size:1.9rem}.gh-article-image{margin-top:2.4rem}}.gh-content{font-size:var(--content-font-size,1.8rem);letter-spacing:var(--content-letter-spacing,0);margin-top:4rem;word-break:break-word}.gh-content>*+*{margin-bottom:0;margin-top:calc(1.6em*var(--content-spacing-multiplier, 1))}.gh-content>[id]{margin:0}.gh-content>.kg-card+[id]{margin-top:calc(2em*var(--content-spacing-multiplier, 1))!important}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-content>[id]{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.01em}.gh-content>[id]:not(:first-child){margin-top:calc(1.6em*var(--content-spacing-multiplier, 1))}.gh-content>[id]+*{margin-top:calc(.8em*var(--content-spacing-multiplier, 1))}.gh-content>blockquote,.gh-content>hr{position:relative}.gh-content>blockquote,.gh-content>blockquote+*,.gh-content>hr,.gh-content>hr+*{margin-top:calc(2.4em*var(--content-spacing-multiplier, 1))}.gh-content h2{font-size:1.6em}.gh-content h3{font-size:1.4em}.gh-content a{color:var(--ghost-accent-color);text-decoration:underline;word-break:break-word}.gh-content .kg-callout-card .kg-callout-text,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>p,.gh-content .kg-toggle-card .kg-toggle-content>ul{font-size:.95em}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-callout-text,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ol,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>p,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ul,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>blockquote,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>dl,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ol,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>p,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ul{font-family:var(--gh-font-body,var(--font-serif))}.gh-content dl,.gh-content ol,.gh-content ul{padding-left:2.8rem}.gh-content :is(li+li,li :is(ul,ol)){margin-top:.8rem}.gh-content ol ol li{list-style-type:lower-alpha}.gh-content ol ol ol li{list-style-type:lower-roman}.gh-content table:not(.gist table){border-collapse:collapse;border-spacing:0;display:inline-block;font-family:var(--font-sans);font-size:1.6rem;max-width:100%;overflow-x:auto;vertical-align:top;white-space:nowrap;width:auto;-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%}.gh-content table:not(.gist table) td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:20px 100%}.gh-content table:not(.gist table) td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-repeat:no-repeat;background-size:20px 100%}.gh-content table:not(.gist table) th{background-color:var(--color-white);color:var(--color-darkgrey);font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase}.gh-content table:not(.gist table) td,.gh-content table:not(.gist table) th{border:1px solid var(--color-light-gray);padding:6px 12px}.page-template .gh-content:only-child{margin-top:0!important}.page-template .gh-content:only-child>:first-child:not(.kg-width-full){margin-top:var(--header-spacing,80px)}.page-template .gh-content>:last-child:not(.kg-width-full){margin-bottom:var(--footer-spacing,0)}@media (max-width:767px){.gh-content{font-size:1.7rem;margin-top:3.2rem}}.gh-comments{margin-bottom:-24px;margin-top:64px}.gh-comments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:40px}.gh-comments .gh-comments-title{margin-bottom:28px}.gh-comments-header .gh-comments-title{margin-bottom:0}.gh-comments-count{color:var(--color-secondary-text)}.gh-cta-gradient{background:linear-gradient(180deg,hsla(0,0%,100%,0),var(--color-white));content:"";grid-column:full-start/full-end;height:160px;margin-bottom:4rem;margin-top:-16rem;position:relative}.gh-cta-gradient:first-child{display:none}.gh-cta{display:flex;flex-direction:column;margin-bottom:4rem;text-align:center}.gh-cta-title{font-size:2.2rem;letter-spacing:-.02em;margin-bottom:3.2rem}.gh-cta-actions{align-items:center;display:flex;flex-direction:column}.gh-cta-link{color:var(--color-secondary-text);cursor:pointer;font-size:1.4rem;margin-top:.8rem;text-decoration:none}.gh-cta-link:hover{color:var(--color-darker-gray)}@media (max-width:767px){.gh-cta-actions{-moz-column-gap:.8rem;column-gap:.8rem}}.gh-content :not(.kg-card):not(table):not([id])+:is(.kg-card,table){margin-top:calc(2em*var(--content-spacing-multiplier, 1))}.gh-content :is(.kg-card,table)+:not(.kg-card):not(table):not([id]){margin-top:calc(2em*var(--content-spacing-multiplier, 1))}.gh-content>.kg-width-full+.kg-width-full:not(.kg-width-full.kg-card-hascaption+.kg-width-full){margin-top:0}.kg-image{margin-left:auto;margin-right:auto}.kg-embed-card{align-items:center;display:flex;flex-direction:column;width:100%}.kg-gallery-image,.kg-image[width][height]{cursor:pointer}.kg-gallery-image a:hover,.kg-image-card a:hover{opacity:1!important}.kg-card.kg-toggle-card .kg-toggle-heading-text{font-size:2rem;font-weight:700}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-toggle-card .kg-toggle-heading-text{font-family:var(--gh-font-heading,var(--font-serif))}.kg-callout-card.kg-card{border-radius:.25em}.kg-callout-card-accent a{text-decoration:underline}blockquote.kg-blockquote-alt{color:var(--color-secondary-text);font-style:normal;font-weight:400}.kg-card.kg-button-card .kg-btn{font-size:1em}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-card.kg-header-card h2.kg-header-card-header{font-family:var(--gh-font-heading,var(--font-serif))}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-header-card h3.kg-header-card-subheader{font-family:var(--gh-font-body,var(--font-serif))}.kg-audio-card,.kg-bookmark-card a.kg-bookmark-container,.kg-bookmark-card a.kg-bookmark-container:hover,.kg-file-card-container,.kg-file-card-container:hover,.kg-product-card-container{background:var(--background-color,#fff)!important;color:var(--color-darker-gray,#222)!important;opacity:1}.kg-bookmark-card .kg-bookmark-container{border-radius:.25em!important}.kg-bookmark-card .kg-bookmark-content{padding:1.15em}.kg-bookmark-card .kg-bookmark-title{font-size:.9em}.kg-bookmark-card .kg-bookmark-description{font-size:.8em;margin-top:.3em;max-height:none}.kg-bookmark-card .kg-bookmark-metadata{font-size:.8em}.kg-bookmark-card .kg-bookmark-thumbnail img{border-radius:0 .2em .2em 0}.has-light-text .kg-audio-card button{color:#fff}.has-light-text .kg-audio-card .kg-audio-volume-slider{color:hsla(0,0%,100%,.3)}.pagination{display:grid;grid-template-columns:1fr auto 1fr;margin-top:6.4rem}.page-number{grid-column-start:2}.older-posts{text-align:right}.gh-navigation{align-items:center;-moz-column-gap:2.4rem;column-gap:2.4rem;display:grid;grid-template-columns:1fr auto 1fr}.gh-navigation>div{align-items:center;display:flex}.gh-navigation-next{justify-content:flex-end}.gh-navigation-link{align-items:center;display:inline-flex}.gh-navigation-link svg{height:16px;width:16px}.gh-navigation-previous svg{margin-right:.4rem}.gh-navigation-next svg{margin-left:.4rem}@media (max-width:767px){.gh-navigation-hide{display:none}}.gh-btn{align-items:center;background-color:var(--color-darker-gray);border:0;border-radius:100px;color:var(--color-white);cursor:pointer;display:inline-flex;font-size:1.6rem;font-weight:700;gap:.4em;justify-content:center;letter-spacing:inherit;line-height:1;padding:calc(.75em*var(--multiplier, 1)) calc(1.15em*var(--multiplier, 1))}.gh-btn:hover{opacity:.95}.gh-post-upgrade-cta .gh-btn{line-height:inherit}.gh-primary-btn{background-color:var(--ghost-accent-color)}.gh-outline-btn{background-color:transparent;border:1px solid var(--color-light-gray);color:var(--color-darker-gray);text-decoration:none}.gh-outline-btn:hover{border-color:var(--color-mid-gray);opacity:1}.gh-icon-btn{align-items:center;background-color:transparent;border:0;color:var(--darker-gray-color);cursor:pointer;display:inline-flex;height:30px;justify-content:center;outline:none;padding:0;width:30px}.gh-icon-btn svg{height:20px;width:20px}.gh-text-btn{align-items:center;background-color:transparent;border:0;color:var(--darker-gray-color);cursor:pointer;display:inline-flex;justify-content:center;letter-spacing:inherit;margin:0;outline:none;padding:0;will-change:opacity}.gh-text-btn:hover{opacity:.8}.gh-foot{color:var(--color-secondary-text);padding-bottom:8rem;padding-top:8rem;white-space:nowrap}.gh-foot-inner{display:grid;font-size:1.3rem;gap:40px;grid-template-columns:1fr auto 1fr}.no-menu .gh-foot-inner{align-items:center;display:flex;flex-direction:column;gap:24px}.gh-foot-menu .nav{align-items:center;display:inline-flex;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;row-gap:4px}.gh-foot-menu .nav li{align-items:center;display:flex}.gh-foot-menu .nav li+li:before{content:"•";font-size:.9rem;line-height:0;padding:0 1.2rem}.gh-powered-by{text-align:right}.gh-foot a{color:var(--color-secondary-text)}.gh-foot a:hover{color:var(--color-darker-gray);opacity:1}@media (max-width:767px){.gh-foot{padding-bottom:12rem;padding-top:6.4rem}.gh-foot-inner{grid-template-columns:1fr;text-align:center}.gh-foot-menu .nav{flex-direction:column}.gh-foot-menu .nav li+li{margin-top:.4rem}.gh-foot-menu .nav li+li:before{display:none}.gh-powered-by{text-align:center}}.pswp{backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:hidden;position:absolute;top:0;touch-action:none;width:100%;z-index:3999999;-webkit-text-size-adjust:100%}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:grab}.pswp--dragging .pswp__img{cursor:grabbing}.pswp__bg{backface-visibility:hidden;background-color:rgba(0,0,0,.85);opacity:0;transform:translateZ(0);transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp__bg,.pswp__scroll-wrap{height:100%;left:0;position:absolute;top:0;width:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{backface-visibility:hidden;bottom:0;left:0;position:absolute;right:0;top:0;touch-action:none}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;transform-origin:left top;transition:transform 333ms cubic-bezier(.4,0,.22,1);width:100%}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__item{bottom:0;overflow:hidden;right:0}.pswp__img,.pswp__item{left:0;position:absolute;top:0}.pswp__img{height:auto;width:auto}.pswp__img--placeholder{backface-visibility:hidden}.pswp__img--placeholder--blank{background:var(--color-black)}.pswp--ie .pswp__img{height:auto!important;left:0;top:0;width:100%!important}.pswp__error-msg{color:var(--color-secondary-text);font-size:14px;left:0;line-height:16px;margin-top:-8px;position:absolute;text-align:center;top:50%;width:100%}.pswp__error-msg a{color:var(--color-secondary-text);text-decoration:underline}.pswp__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;display:block;float:right;height:44px;margin:0;overflow:visible;padding:0;position:relative;transition:opacity .2s;width:44px}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{opacity:.9;outline:none}.pswp__button::-moz-focus-inner{border:0;padding:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:url(../images/default-skin.png) 0 0 no-repeat;background-size:264px 88px;height:44px;width:44px}@media (min-resolution:1.1dppx),(min-resolution:105dpi){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url(../images/default-skin.svg)}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:none}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{background-position:-88px 0;display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;height:100px;margin-top:-50px;position:absolute;top:50%;width:70px}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";height:30px;position:absolute;top:35px;width:32px}.pswp__button--arrow--left:before{background-position:-138px -44px;left:6px}.pswp__button--arrow--right:before{background-position:-94px -44px;right:6px}.pswp__counter{color:var(--color-white);font-size:11px;font-weight:700;height:44px;left:0;line-height:44px;padding:0 15px;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__caption{bottom:0;left:0;min-height:44px;position:absolute;width:100%}.pswp__caption__center{color:var(--color-white);font-size:11px;line-height:1.6;margin:0 auto;max-width:420px;padding:25px 15px 30px;text-align:center}.pswp__caption__center .post-caption-title{font-size:15px;font-weight:500;margin-bottom:7px;text-transform:uppercase}.pswp__caption__center .post-caption-meta-item+.post-caption-meta-item:before{content:"\02022";padding:0 4px}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{direction:ltr;height:44px;left:50%;margin-left:-22px;opacity:0;position:absolute;top:0;transition:opacity .25s ease-out;width:44px;will-change:opacity}.pswp__preloader__icn{height:20px;margin:12px;width:20px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url(../images/preloader.gif) 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{background:none;height:14px;left:15px;margin:0;opacity:.75;position:absolute;top:15px;width:14px}.pswp--css_animation .pswp__preloader__cut{height:14px;overflow:hidden;position:relative;width:7px}.pswp--css_animation .pswp__preloader__donut{background:none;border-bottom:2px solid transparent;border-left:2px solid transparent;border-radius:50%;border-right:2px solid var(--color-white);border-top:2px solid var(--color-white);box-sizing:border-box;height:14px;left:0;margin:0;position:absolute;top:0;width:14px}@media screen and (max-width:1024px){.pswp__preloader{float:right;left:auto;margin:0;position:relative;top:auto}}@keyframes clockwise{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.pswp__ui{opacity:1;visibility:visible;z-index:1550;-webkit-font-smoothing:auto}.pswp__top-bar{height:44px;left:0;position:absolute;top:0;width:100%}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{backface-visibility:hidden;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:none}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:local(""),url(../fonts/inter-v8-latin-regular.woff2) format("woff2"),url(../fonts/inter-v8-latin-regular.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:600;src:local(""),url(../fonts/inter-v8-latin-600.woff2) format("woff2"),url(../fonts/inter-v8-latin-600.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:700;src:local(""),url(../fonts/inter-v8-latin-700.woff2) format("woff2"),url(../fonts/inter-v8-latin-700.woff) format("woff")}@font-face{font-family:Lora;font-style:normal;font-weight:400;src:local(""),url(../fonts/lora-v23-latin-regular.woff2) format("woff2"),url(../fonts/lora-v23-latin-regular.woff) format("woff")}@font-face{font-family:Lora;font-style:normal;font-weight:700;src:local(""),url(../fonts/lora-v23-latin-700.woff2) format("woff2"),url(../fonts/lora-v23-latin-700.woff) format("woff")}@font-face{font-family:Lora;font-style:italic;font-weight:400;src:local(""),url(../fonts/lora-v23-latin-italic.woff2) format("woff2"),url(../fonts/lora-v23-latin-italic.woff) format("woff")}@font-face{font-family:Lora;font-style:italic;font-weight:700;src:local(""),url(../fonts/lora-v23-latin-700italic.woff2) format("woff2"),url(../fonts/lora-v23-latin-700italic.woff) format("woff")}:root{--font-sans:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;--font-serif:Lora,Times,serif;--color-primary-text:#15171a;--content-width:640px;--content-font-size:1.6rem;--grid-gap:16px}.flexmasonry{align-content:space-between;display:flex;flex-flow:column wrap}.flexmasonry-item{width:100%}.flexmasonry-cols-2 .flexmasonry-item{width:50%}.flexmasonry-cols-3 .flexmasonry-item{width:33.333%}.flexmasonry-cols-4 .flexmasonry-item{width:25%}.flexmasonry-cols-5 .flexmasonry-item{width:20%}.flexmasonry-cols-6 .flexmasonry-item{width:16.666%}.flexmasonry-cols-7 .flexmasonry-item{width:14.285%}.flexmasonry-cols-8 .flexmasonry-item{width:12.5%}.flexmasonry-cols-2 .flexmasonry-item:nth-child(odd){order:1}.flexmasonry-cols-2 .flexmasonry-item:nth-child(2n){order:2}.flexmasonry-cols-3 .flexmasonry-item:nth-child(3n+1){order:1}.flexmasonry-cols-3 .flexmasonry-item:nth-child(3n+2){order:2}.flexmasonry-cols-3 .flexmasonry-item:nth-child(3n){order:3}.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+1){order:1}.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+2){order:2}.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+3){order:3}.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n){order:4}.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+1){order:1}.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+2){order:2}.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+3){order:3}.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+4){order:4}.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n){order:5}.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+1){order:1}.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+2){order:2}.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+3){order:3}.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+4){order:4}.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+5){order:5}.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n){order:6}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+1){order:1}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+2){order:2}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+3){order:3}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+4){order:4}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+5){order:5}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+6){order:6}.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n){order:7}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+1){order:1}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+2){order:2}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+3){order:3}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+4){order:4}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+5){order:5}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+6){order:6}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+7){order:7}.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n){order:8}.flexmasonry-break{content:"";flex-basis:100%;margin:0;width:0!important}.flexmasonry-break-1{order:1}.flexmasonry-break-2{order:2}.flexmasonry-break-3{order:3}.flexmasonry-break-4{order:4}.flexmasonry-break-5{order:5}.flexmasonry-break-6{order:6}.flexmasonry-break-7{order:7}.site{display:flex;flex-direction:column;min-height:100vh}.site-content{flex-grow:1;padding:48px 0 96px}.page-template .site-content{padding-block:0}.gh-head-link,.gh-head-menu{font-size:1.5rem;font-weight:600;letter-spacing:-.009em}.post-feed{margin:0 auto;opacity:0;transition:opacity .3s var(--animation-base);visibility:hidden}.post-feed.initialized{opacity:1;visibility:visible}.post-feed .grid-item{position:absolute;width:330px}.post-feed .post{margin:var(--grid-gap);position:relative}.post-feed .post-image{width:100%}@media (max-width:640px){.post-feed{--grid-gap:4px;max-width:calc(100% - (var(--gap) - var(--grid-gap))*2)}.post-feed .grid-item{width:50%}}@media (min-width:641px) and (max-width:1019px){.post-feed{--grid-gap:8px;max-width:calc(100% - (var(--gap) - var(--grid-gap))*2)}.post-feed .grid-item{width:33.33333%}}@media (min-width:1020px){.post-feed{max-width:990px}}@media (min-width:1350px){.post-feed{max-width:1320px}}@media (min-width:1680px){.post-feed{max-width:1650px}}.post-caption{display:none}.post-link{display:block}.post-link:hover{opacity:1}.post-lightbox{align-items:center;background-color:var(--color-white);border-radius:50%;bottom:15px;box-shadow:0 0 5px rgba(0,0,0,.2);display:flex;height:30px;justify-content:center;line-height:30px;opacity:0;position:absolute;right:15px;text-align:center;transform:scale(.8);transition:opacity .2s ease,transform .2s ease;width:30px}.post-lightbox:hover,.post-link:hover+.post-lightbox{opacity:1;transform:scale(1)}.gh-article-image{margin:0 0 64px}.gh-article-title{font-size:3.2rem}.gh-article-excerpt{font-size:1.8rem;margin-top:16px}.gh-content{margin-top:28px}.related-posts{margin-top:96px}.related-title{font-size:2.4rem;font-weight:600;margin:0 var(--grid-gap) 24px}@media (max-width:767px){.related-posts{margin-top:60px}}.pswp__bg{background:hsla(0,0%,100%,.9)}.pswp__caption__center{color:var(--color-darker-gray)}/*# sourceMappingURL=screen.css.map */ 2 | -------------------------------------------------------------------------------- /assets/built/screen.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/vars.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/reset.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/global.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/layout.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/header.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/cover.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/loop.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/post-card.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/article.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/content.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/comments.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/cta.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/card.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/pagination.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/navigation.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/button.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/footer.css","../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/vendor/pswp.css","general/fonts.css","general/vars.css","general/masonry.css","site/layout.css","site/header.css","blog/feed.css","blog/post.css","blog/article.css","blog/related.css","misc/pswp.css"],"names":[],"mappings":"AAAA,MACI,yBAA0B,CAC1B,2BAA4B,CAC5B,kBAAmB,CACnB,4BAA6B,CAC7B,0BAA2B,CAC3B,qBAAsB,CACtB,sBAAuB,CACvB,2BAA4B,CAC5B,kBAAmB,CACnB,gFAAsF,CACtF,0BAA4B,CAC5B,0EAAgF,CAChF,qBAAsB,CACtB,gBAAiB,CACjB,YAAa,CACb,qBACJ,CAEA,yBACI,MACI,0BAA4B,CAC5B,UAAW,CACX,qBACJ,CACJ,CCxBA,iBAGI,qBACJ,CAGA,iDAYI,QACJ,CAGA,4BAEI,eACJ,CAGA,kBACI,sBACJ,CAGA,KAEI,eAAgB,CADhB,gBAAiB,CAEjB,4BACJ,CAGA,eACI,gCAA8B,CAA9B,6BACJ,CAGA,YAEI,aAAc,CACd,cACJ,CAGA,6BAII,YACJ,CAGA,uCACI,kBACI,oBACJ,CAEA,iBAII,kCAAqC,CACrC,qCAAuC,CACvC,8BAAgC,CAHhC,mCAIJ,CACJ,CC3EA,KACI,eACJ,CAEA,KAKI,mCAAoC,CADpC,+BAAgC,CAHhC,gDAAkD,CAClD,gBAAiB,CACjB,eAAgB,CAGhB,kCAAmC,CACnC,iCACJ,CAEA,IACI,WACJ,CAEA,EACI,8BAA+B,CAC/B,oBACJ,CAEA,QACI,UACJ,CAEA,kBAQI,8BAA+B,CAF/B,mDAAqD,CAGrD,qBAAuB,CAFvB,gBAGJ,CAEA,GACI,wBACJ,CAEA,GACI,gBACJ,CAEA,GACI,gBACJ,CAEA,GACI,gBACJ,CAEA,GACI,cACJ,CAEA,GACI,gBACJ,CAEA,GAGI,wCAAyC,CACzC,QAAS,CAFT,UAAW,CADX,UAIJ,CAEA,wBAEI,+CAAgD,CADhD,iBAEJ,CAEA,WAII,iCAAkC,CAFlC,gBAAiB,CACjB,eAAgB,CAFhB,iBAAkB,CAIlB,iBACJ,CAEA,0BACI,gBACJ,CAEA,yBACI,8BAA+B,CAC/B,oBACJ,CAEA,IAMI,0CAA2C,CAH3C,YAAa,CACb,eAAgB,CAFhB,iBAAkB,CADlB,qBAAsB,CAItB,eAAgB,CAEhB,gCACJ,CAEA,KACI,4BAA6B,CAC7B,cACJ,CAEA,eAGI,0CAA2C,CAC3C,iBAAkB,CAFlB,+BAAgC,CADhC,aAIJ,CAEA,OAII,QAAS,CAHT,aAAc,CAEd,eAAgB,CADhB,UAGJ,CAEA,yBACI,GACI,gBACJ,CAEA,GACI,gBACJ,CACJ,CCjIA,SACI,YAAa,CACb,qBAAsB,CACtB,gBACJ,CAEA,SACI,WAAY,CAEZ,mBAAoB,CADpB,gBAEJ,CAEA,wBACI,eACJ,CAEA,UAEI,uBAAwB,CADxB,wBAEJ,CAEA,UAEI,aAAc,CADd,uCAEJ,CAMA,0CAEI,4DAA+D,CAC/D,uFAA2F,CAC3F,6BAA+B,CAE/B,YAAa,CACb,yJAMJ,CAEA,aACI,gBACJ,CAEA,oCAEI,gBACJ,CAEA,eACI,gBACJ,CAEA,mBACI,UACJ,CAEA,yBACI,SAEI,qBAAsB,CADtB,kBAEJ,CACJ,CCnEA,SAEI,mCAAoC,CADpC,YAEJ,CAEA,eAKI,kBAAmB,CADnB,mCAA+B,CAA/B,8BAA+B,CAH/B,YAAa,CAEb,wBAAyB,CADzB,mCAAoC,CAIpC,WACJ,CAEA,eACI,aACJ,CAEA,uBAEI,kBAAmB,CADnB,YAEJ,CAEA,cAEI,mDAAqD,CACrD,gBAAiB,CACjB,eAAgB,CAChB,qBAAuB,CAJvB,iBAKJ,CAEA,kBACI,eACJ,CAEA,+BAGI,MAAO,CACP,SAAU,CAHV,iBAAkB,CAClB,KAGJ,CAEA,cACI,YAGJ,CAEA,4BAHI,kBAAmB,CADnB,uBAYJ,CARA,cACI,mBAAoB,CAMpB,eAAgB,CAFhB,QAAS,CADT,SAAU,CAEV,kBAEJ,CAEA,0BAGI,iBAAkB,CADlB,aAAc,CADd,iBAAkB,CAGlB,sBACJ,CAEA,8BAEI,WAAY,CADZ,UAEJ,CAEA,iBAGI,kBAAmB,CAFnB,YAAa,CACb,uBAAwB,CAExB,wBACJ,CAEA,iBAGI,kBAAmB,CAFnB,YAAa,CACb,QAAS,CAET,kBACJ,CAEA,oBACI,iBAAkB,CAClB,eACJ,CAEA,0BAEI,kBAAmB,CACnB,+BAAgC,CAFhC,mBAGJ,CAEA,iBAEI,YAAa,CADb,WAEJ,CAEA,WAEI,gBAAiB,CADjB,iBAEJ,CAEA,iBACI,UACJ,CAEA,0BACI,gBACJ,CAEA,yBACI,iBACI,6BAA8B,CAC9B,QAAS,CACT,UACJ,CAEA,4BACI,YACJ,CACJ,CAEA,yBACI,0BACI,YACJ,CAEA,oDACI,SACJ,CACJ,CAWA,kCACI,mCACJ,CAEA,yBACI,iCAEI,gBAAiB,CADjB,iBAEJ,CACJ,CAQA,oCACI,kCACJ,CAEA,oCACI,mBACJ,CAEA,sCACI,QACJ,CAEA,yBACI,mCACI,iBACJ,CACJ,CASA,0BAEI,WAAY,CADZ,iBAEJ,CAEA,gCACI,kCACJ,CAEA,gCACI,YAAa,CAEb,mBAAoB,CADpB,gBAAiB,CAEjB,eACJ,CAEA,yBACI,gCACI,gBACJ,CACJ,CAEA,yBACI,gCACI,SACJ,CAEA,gCAEI,kBAAmB,CADnB,YAAa,CAEb,WACJ,CAEA,+BAEI,eAAkB,CADlB,gBAAiB,CAGjB,WAAY,CADZ,sBAAuB,CAEvB,aACJ,CAEA,2EAQI,wCAAyC,CADzC,UAAW,CADX,UAAW,CAFX,MAAO,CAFP,iBAAkB,CAClB,QAAS,CAET,UAIJ,CAEA,qCACI,SACJ,CAEA,kCAEI,eAAkB,CADlB,gBAAiB,CAEjB,6BACJ,CACJ,CAKA,8BAKI,4BAA6B,CAF7B,MAAO,CAFP,iBAAkB,CAClB,OAAQ,CAER,UAEJ,CAEA,mSAQI,wBACJ,CAEA,6EAEI,mCACJ,CAEA,kCAEI,qBAAsB,CADtB,aAEJ,CAEA,mFAEI,mCACJ,CAEA,4CAGI,MAAO,CAFP,iBAAkB,CAClB,OAEJ,CAEA,qFACI,eACJ,CAKA,iDACI,yCACJ,CAEA,wbAQI,wBACJ,CAEA,mHAEI,mCACJ,CAEA,qDAEI,qBAAsB,CADtB,aAEJ,CAEA,yHAEI,mCACJ,CAKA,kDACI,0CACJ,CAEA,gcAQI,wBACJ,CAEA,qHAEI,mCACJ,CAEA,sDAEI,qBAAsB,CADtB,aAEJ,CAEA,2HAEI,mCACJ,CAKA,aAUI,qBAAsB,CACtB,iBAAkB,CAClB,oEAA8E,CAL9E,eAAgB,CAMhB,SAAU,CAPV,cAAe,CALf,iBAAkB,CAElB,WAAY,CAKZ,eAAgB,CANhB,QAAS,CAaT,8BAAiC,CADjC,oCAAwC,CALxC,iBAAkB,CAJlB,WAAY,CADZ,UAYJ,CAEA,kCAEI,UAAW,CADX,UAEJ,CAEA,+BAII,oBAAgB,CAAhB,eAAgB,CAHhB,YAAa,CAEb,qBAAsB,CADtB,6BAA8B,CAI9B,iBAAkB,CADlB,UAEJ,CAEA,+BAEI,SAAU,CACV,uBAAwB,CAFxB,kBAGJ,CAEA,kBAGI,uBAAyB,CAFzB,aAAc,CACd,gBAEJ,CAEA,oCACI,aACJ,CAKA,WAOI,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAEhB,4BAA6B,CAC7B,QAAS,CAFT,cAAe,CANf,YAAa,CAEb,WAAY,CAEZ,iBAAkB,CADlB,SAAU,CAJV,iBAAkB,CAElB,UAQJ,CAEA,mCAOI,yCAA0C,CAD1C,UAAW,CADX,UAAW,CAFX,QAAS,CADT,iBAAkB,CAMlB,uDAAiE,CAJjE,UAKJ,CAEA,kBACI,QACJ,CAEA,iBACI,WACJ,CAEA,gCACI,QAAS,CACT,uBACJ,CAEA,+BACI,WAAY,CACZ,wBACJ,CAEA,yBACI,SACI,WACJ,CAEA,wBAGI,QAAS,CADT,yBAA0B,CAD1B,gCAGJ,CAEA,wBAII,kBAAmB,CAHnB,YAAa,CAEb,mBAAoB,CADpB,mCAAoC,CAGpC,WACJ,CAEA,uBACI,gBACJ,CAEA,WACI,aACJ,CAEA,iDAGI,sBAAuB,CAEvB,SAAU,CAHV,cAAe,CAEf,iBAEJ,CAEA,uBAEI,uBAAwB,CADxB,eAEJ,CAEA,cAEI,kBAAmB,CADnB,QAAS,CAET,eACJ,CAEA,gBACI,gBAAiB,CACjB,eAAgB,CAChB,mBACJ,CAEA,iBACI,SAAU,CACV,0BACJ,CAEA,0BACI,iBACJ,CAEA,yCACI,SAAU,CACV,yBACJ,CAEA,sBAEI,gBAAiB,CACjB,mBAAoB,CAFpB,UAGJ,CAEA,mCACI,cACJ,CAEA,SACI,sBACJ,CAEA,uBAII,WAAY,CAFZ,OAAQ,CAGR,iBAAkB,CAJlB,cAAe,CAEf,eAAgB,CAGhB,gCACJ,CAEA,wFACI,mCACJ,CAEA,2HAEI,0CACJ,CAEA,yFAEI,yCACJ,CAEA,6EAII,SAAU,CAFV,eAAgB,CAChB,kBAEJ,CAEA,4BACI,YAAa,CACb,qBACJ,CAEA,+BACI,SAAU,CAEV,uBAAwB,CADxB,oCAEJ,CAEA,wCAQI,kBAAmB,CAEnB,mCAAoC,CAPpC,QAAS,CAET,mBAAoB,CACpB,qBAAsB,CACtB,QAAS,CAHT,MAAO,CAKP,2CAA4C,CAR5C,eAAgB,CAChB,OASJ,CAEA,uDACI,SAAU,CAGV,uBAAwB,CAFxB,oCAAwC,CACxC,oBAEJ,CAEA,qCACI,oBACJ,CAEA,uBACI,SACJ,CACJ,CC9lBA,UAEI,mCAAqC,CAErC,qBAAsB,CADtB,kBAAmB,CAFnB,iBAIJ,CAEA,gBAMI,WAAY,CAJZ,OAAQ,CAER,mBAAiB,CAAjB,gBAAiB,CAHjB,iBAAkB,CAIlB,UAAW,CAFX,UAIJ,CAEA,gGACI,oDACJ,CAEA,+FACI,iDACJ,CCtBA,+FACI,oDAAsD,CACtD,qBACJ,CAEA,0FACI,iDACJ,CCPA,SACI,qBACJ,CCFA,kCACI,qCACJ,CAEA,gBACI,+BACJ,CAEA,kBACI,qBACJ,CAEA,kGACI,oDAAsD,CACtD,qBACJ,CAEA,oBAII,iCAAkC,CAFlC,gBAAiB,CACjB,eAAgB,CAFhB,eAIJ,CAEA,6FACI,iDACJ,CAEA,kBACI,+BAAgC,CAChC,eACJ,CAEA,sBACI,UACJ,CAEA,yBACI,oBACI,gBACJ,CAEA,kBACI,iBACJ,CACJ,CCzCA,YAEI,yCAA2C,CAC3C,8CAAgD,CAFhD,eAAgB,CAGhB,qBACJ,CAGA,gBAEI,eAAgB,CADhB,2DAEJ,CAGA,iBACI,QACJ,CAEA,0BACI,mEACJ,CAEA,iGACI,oDAAsD,CACtD,qBACJ,CAIA,mCACI,2DACJ,CAGA,mBACI,0DACJ,CAGA,sCAEI,iBAEJ,CAEA,gFAHI,2DAMJ,CAGA,eACI,eACJ,CAEA,eACI,eACJ,CAEA,cACI,+BAAgC,CAChC,yBAA0B,CAC1B,qBACJ,CAEA,mMAII,eACJ,CAEA,q2BASI,iDACJ,CAEA,6CAGI,mBACJ,CAEA,qCACI,gBACJ,CAEA,qBACI,2BACJ,CAEA,wBACI,2BACJ,CAEA,mCAUI,wBAAyB,CADzB,gBAAiB,CARjB,oBAAqB,CAIrB,4BAA6B,CAC7B,gBAAiB,CAHjB,cAAe,CACf,eAAgB,CAIhB,kBAAmB,CADnB,kBAAmB,CALnB,UAAW,CASX,gCAAiC,CACjC,sJAA8L,CAE9L,mCAAqC,CADrC,2BAA4B,CAE5B,mCACJ,CAEA,kDACI,kEAAgG,CAChG,2BAA4B,CAC5B,yBACJ,CAEA,iDACI,mEAA+F,CAE/F,0BAA2B,CAD3B,2BAA4B,CAE5B,yBACJ,CAEA,sCAOI,mCAAoC,CAJpC,2BAA4B,CAF5B,gBAAiB,CACjB,eAAgB,CAIhB,mBAAqB,CAFrB,eAAgB,CAChB,wBAGJ,CAEA,4EAGI,wCAAyC,CADzC,gBAEJ,CAGA,sCACI,sBACJ,CAEA,uEACI,qCACJ,CAEA,2DACI,qCACJ,CAEA,yBACI,YAEI,gBAAiB,CADjB,iBAEJ,CACJ,CC3KA,aAEI,mBAAoB,CADpB,eAEJ,CAEA,oBAEI,kBAAmB,CADnB,YAAa,CAEb,6BAA8B,CAC9B,kBACJ,CAEA,gCACI,kBACJ,CAEA,uCACI,eACJ,CAEA,mBACI,iCACJ,CCtBA,iBAOI,uEAA+E,CAD/E,UAAW,CAJX,+BAAkC,CAClC,YAAa,CAEb,kBAAmB,CADnB,iBAAkB,CAHlB,iBAOJ,CAEA,6BACI,YACJ,CAEA,QACI,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,iBACJ,CAEA,cAEI,gBAAiB,CACjB,qBAAuB,CAFvB,oBAGJ,CAEA,gBAGI,kBAAmB,CAFnB,YAAa,CACb,qBAEJ,CAEA,aAGI,iCAAkC,CAElC,cAAe,CAHf,gBAAiB,CADjB,gBAAkB,CAGlB,oBAEJ,CAEA,mBACI,8BACJ,CAEA,yBACI,gBACI,qBAAkB,CAAlB,gBACJ,CACJ,CC9CA,oEACI,yDACJ,CAEA,oEACI,yDACJ,CAGA,gGACI,YACJ,CAKA,UAEI,gBAAiB,CADjB,iBAEJ,CAKA,eAGI,kBAAmB,CAFnB,YAAa,CACb,qBAAsB,CAEtB,UACJ,CAKA,2CAEI,cACJ,CAEA,iDAEI,mBACJ,CAKA,gDACI,cAAe,CACf,eACJ,CAEA,wHACI,oDACJ,CAKA,yBACI,mBACJ,CAEA,0BACI,yBACJ,CAKA,6BAGI,iCAAkC,CAFlC,iBAAkB,CAClB,eAEJ,CAKA,gCACI,aACJ,CAKA,iIACI,oDACJ,CAEA,qHACI,iDACJ,CAKA,0LAMI,iDAAoD,CACpD,6CAAgD,CAChD,SACJ,CAEA,yCACI,6BACJ,CAEA,uCACI,cACJ,CAEA,qCACI,cACJ,CAEA,2CAGI,cAAgB,CADhB,eAAiB,CADjB,eAGJ,CAEA,wCACI,cACJ,CAEA,6CACI,2BACJ,CAKA,sCACI,UACJ,CAEA,uDACI,wBACJ,CClJA,YACI,YAAa,CACb,kCAAmC,CACnC,iBACJ,CAEA,aACI,mBACJ,CAEA,aACI,gBACJ,CCZA,eAII,kBAAmB,CADnB,sBAAkB,CAAlB,iBAAkB,CAFlB,YAAa,CACb,kCAGJ,CAEA,mBAEI,kBAAmB,CADnB,YAEJ,CAEA,oBACI,wBACJ,CAEA,oBAEI,kBAAmB,CADnB,mBAEJ,CAEA,wBAEI,WAAY,CADZ,UAEJ,CAEA,4BACI,kBACJ,CAEA,wBACI,iBACJ,CAEA,yBACI,oBACI,YACJ,CACJ,CCtCA,QAGI,kBAAmB,CASnB,yCAA0C,CAC1C,QAAS,CACT,mBAAoB,CALpB,wBAAyB,CAEzB,cAAe,CAVf,mBAAoB,CAKpB,gBAAiB,CACjB,eAAgB,CALhB,QAAU,CAEV,sBAAuB,CAMvB,sBAAuB,CAFvB,aAAc,CAHd,0EAUJ,CAEA,cACI,WACJ,CAEA,6BACI,mBACJ,CAEA,gBACI,0CACJ,CAEA,gBAGI,4BAA6B,CAC7B,wCAAyC,CAHzC,8BAA+B,CAC/B,oBAGJ,CAEA,sBACI,kCAAmC,CACnC,SACJ,CAEA,aAEI,kBAAmB,CAOnB,4BAA6B,CAC7B,QAAS,CAHT,8BAA+B,CAC/B,cAAe,CAPf,mBAAoB,CAIpB,WAAY,CAFZ,sBAAuB,CAQvB,YAAa,CALb,SAAU,CAFV,UAQJ,CAEA,iBAEI,WAAY,CADZ,UAEJ,CAEA,aAEI,kBAAmB,CAOnB,4BAA6B,CAC7B,QAAS,CAJT,8BAA+B,CAE/B,cAAe,CAPf,mBAAoB,CAEpB,sBAAuB,CAIvB,sBAAuB,CAFvB,QAAS,CAMT,YAAa,CAPb,SAAU,CAQV,mBACJ,CAEA,mBACI,UACJ,CC7EA,SAGI,iCAAkC,CADlC,mBAAoB,CADpB,gBAAiB,CAGjB,kBACJ,CAEA,eACI,YAAa,CAGb,gBAAiB,CADjB,QAAS,CADT,kCAGJ,CAEA,wBAII,kBAAmB,CAHnB,YAAa,CACb,qBAAsB,CACtB,QAEJ,CAEA,mBAII,kBAAmB,CAHnB,mBAAoB,CACpB,cAAe,CAGf,sBAAuB,CAGvB,eAAgB,CADhB,QAAS,CADT,SAAU,CAHV,WAMJ,CAEA,sBAEI,kBAAmB,CADnB,YAEJ,CAEA,gCAII,WAAY,CAFZ,eAAiB,CACjB,aAAc,CAFd,gBAIJ,CAEA,eACI,gBACJ,CAEA,WACI,iCACJ,CAEA,iBACI,8BAA+B,CAC/B,SACJ,CAEA,yBACI,SAEI,oBAAqB,CADrB,kBAEJ,CAEA,eACI,yBAA0B,CAC1B,iBACJ,CAEA,mBACI,qBACJ,CAEA,yBACI,gBACJ,CAEA,gCACI,YACJ,CAEA,eACI,iBACJ,CACJ,CCnFA,MAYI,0BAA2B,CAP3B,YAAa,CAEb,WAAY,CAJZ,MAAO,CAQP,YAAa,CAHb,eAAgB,CAPhB,iBAAkB,CAClB,KAAM,CAQN,iBAAkB,CAJlB,UAAW,CAFX,eAAgB,CAShB,6BACJ,CAEA,UACI,cACJ,CAEA,uBACI,YAAc,CACd,iDAAuD,CACvD,mBACJ,CAEA,YACI,aACJ,CAEA,+BACI,cACJ,CAEA,4BACI,WACJ,CAEA,2BACI,eACJ,CAEA,UAUI,0BAA2B,CAJ3B,gCAAqC,CACrC,SAAU,CAEV,uBAAwB,CADxB,iDAAuD,CAGvD,mBACJ,CAEA,6BATI,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,UAiBJ,CAPA,mBAMI,eACJ,CAEA,kCAQI,0BAA2B,CAH3B,QAAS,CACT,MAAO,CAJP,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAIN,iBAEJ,CAEA,4BAEI,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CACjB,uCAAwC,CACxC,0BACJ,CAEA,iBACI,iBAAkB,CAGlB,yBAA0B,CAD1B,mDAAyD,CADzD,UAGJ,CAEA,iEAEI,eACJ,CAEA,YAII,QAAS,CAET,eAAgB,CAHhB,OAIJ,CAEA,uBAJI,MAAO,CAJP,iBAAkB,CAClB,KAaJ,CANA,WAKI,WAAY,CADZ,UAEJ,CAEA,wBACI,0BACJ,CAEA,+BACI,6BACJ,CAEA,qBAII,qBAAuB,CAFvB,MAAO,CADP,KAAM,CAEN,oBAEJ,CAEA,iBAQI,iCAAkC,CAFlC,cAAe,CAHf,MAAO,CAIP,gBAAiB,CAFjB,eAAgB,CAJhB,iBAAkB,CAQlB,iBAAkB,CAPlB,OAAQ,CAER,UAMJ,CAEA,mBACI,iCAAkC,CAClC,yBACJ,CAEA,cASI,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAEhB,eAAgB,CAChB,QAAS,CACT,eAAgB,CAHhB,cAAe,CARf,aAAc,CACd,WAAY,CAEZ,WAAY,CAEZ,QAAS,CACT,gBAAiB,CAFjB,SAAU,CALV,iBAAkB,CAalB,sBAAwB,CAVxB,UAWJ,CAEA,wCAEI,SACJ,CAEA,qBAEI,UAAY,CADZ,YAEJ,CAEA,gCAEI,QAAS,CADT,SAEJ,CAEA,2CACI,SACJ,CAEA,mFAKI,wDAA2D,CAC3D,0BAA2B,CAF3B,WAAY,CADZ,UAIJ,CAEA,wDACI,oHAGI,gDACJ,CAEA,6EAEI,eACJ,CACJ,CAEA,qBACI,2BACJ,CAEA,qBACI,+BACJ,CAEA,kBACI,YACJ,CAEA,qCACI,aACJ,CAEA,4BACI,2BACJ,CAEA,oBAEI,2BAA4B,CAD5B,YAEJ,CAEA,wCACI,aACJ,CAEA,qCACI,4BACJ,CAEA,iFAEI,iBACJ,CAEA,uDAOI,eAAgB,CAFhB,YAAa,CACb,gBAAiB,CAJjB,iBAAkB,CAClB,OAAQ,CACR,UAIJ,CAEA,2BACI,MACJ,CAEA,4BACI,OACJ,CAEA,qEAMI,UAAW,CADX,WAAY,CAHZ,iBAAkB,CAClB,QAAS,CACT,UAGJ,CAEA,kCAEI,gCAAiC,CADjC,QAEJ,CAEA,mCAEI,+BAAgC,CADhC,SAEJ,CAEA,eASI,wBAAyB,CAHzB,cAAe,CACf,eAAgB,CAHhB,WAAY,CADZ,MAAO,CAKP,gBAAiB,CAHjB,cAAe,CAJf,iBAAkB,CAClB,KAAM,CAQN,wBAAiB,CAAjB,qBAAiB,CAAjB,gBACJ,CAEA,eAEI,QAAS,CACT,MAAO,CAEP,eAAgB,CAJhB,iBAAkB,CAGlB,UAEJ,CAEA,uBAMI,wBAAyB,CAFzB,cAAe,CACf,eAAgB,CAFhB,aAAc,CAFd,eAAgB,CAChB,sBAAuB,CAKvB,iBACJ,CAEA,2CAEI,cAAe,CACf,eAAgB,CAFhB,iBAAkB,CAGlB,wBACJ,CAEA,8EAEI,gBAAiB,CADjB,aAEJ,CAEA,sBACI,YACJ,CAEA,qBACI,iBACJ,CAEA,iBASI,aAAc,CAJd,WAAY,CAFZ,QAAS,CAGT,iBAAkB,CAClB,SAAU,CANV,iBAAkB,CAClB,KAAM,CAMN,gCAAkC,CAJlC,UAAW,CAMX,mBACJ,CAEA,sBAEI,WAAY,CACZ,WAAY,CAFZ,UAGJ,CAEA,yBACI,SACJ,CAEA,+CACI,qDACJ,CAEA,8CACI,SACJ,CAEA,oEACI,uCACJ,CAEA,sEACI,2DACJ,CAEA,2CAOI,eAAgB,CAFhB,WAAY,CAFZ,SAAU,CAGV,QAAS,CAET,WAAa,CAPb,iBAAkB,CAClB,QAAS,CAET,UAKJ,CAEA,2CAGI,WAAY,CACZ,eAAgB,CAHhB,iBAAkB,CAClB,SAGJ,CAEA,6CAQI,eAAgB,CAEhB,mCAAgC,CAChC,iCAA8B,CAC9B,iBAAkB,CAHlB,yCAAoC,CAApC,uCAAoC,CALpC,qBAAsB,CAEtB,WAAY,CAHZ,MAAO,CAIP,QAAS,CANT,iBAAkB,CAClB,KAAM,CAGN,UAQJ,CAEA,qCACI,iBAII,WAAY,CADZ,SAAU,CAEV,QAAS,CAJT,iBAAkB,CAClB,QAIJ,CACJ,CAEA,qBACI,GACI,sBACJ,CAEA,GACI,uBACJ,CACJ,CAEA,wBACI,GACI,mBACJ,CAEA,IACI,yBACJ,CAEA,GACI,mBACJ,CACJ,CAEA,UAGI,SAAU,CADV,kBAAmB,CADnB,YAAa,CAGb,2BACJ,CAEA,eAKI,WAAY,CAFZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,UAEJ,CAEA,uHAII,0BAA2B,CAC3B,iDAAuD,CACvD,mBACJ,CAEA,yFAEI,kBACJ,CAMA,sHAEI,SACJ,CAEA,6JAII,YACJ,CAEA,qIAGI,YACJ,CAEA,yBACI,sBACJ,CAEA,oCACI,eACJ,CC3eA,WACI,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,iIACJ,CAEA,WACI,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,yHACJ,CAEA,WACI,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,yHACJ,CAEA,WACI,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,iIACJ,CAEA,WACI,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,yHACJ,CAEA,WACI,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,+HACJ,CAEA,WACI,gBAAiB,CACjB,iBAAkB,CAClB,eAAgB,CAChB,qIACJ,CC/CA,MACI,sFAA6F,CAC7F,6BAAgC,CAChC,4BAA6B,CAC7B,qBAAsB,CACtB,0BAA2B,CAC3B,eACJ,CCPA,aAGI,2BAA4B,CAF5B,YAAa,CACb,qBAEJ,CAEA,kBAAoB,UAAa,CACjC,sCAAwC,SAAY,CACpD,sCAAwC,aAAgB,CACxD,sCAAwC,SAAY,CACpD,sCAAwC,SAAY,CACpD,sCAAwC,aAAgB,CACxD,sCAAwC,aAAgB,CACxD,sCAAwC,WAAc,CAEtD,qDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,sDAAwD,OAAU,CAClE,oDAAsD,OAAU,CAEhE,mBAII,UAAW,CAHX,eAAgB,CAEhB,QAAS,CADT,iBAGJ,CAEA,qBAAuB,OAAU,CACjC,qBAAuB,OAAU,CACjC,qBAAuB,OAAU,CACjC,qBAAuB,OAAU,CACjC,qBAAuB,OAAU,CACjC,qBAAuB,OAAU,CACjC,qBAAuB,OAAU,CCtEjC,MACI,YAAa,CACb,qBAAsB,CACtB,gBACJ,CAEA,cACI,WAAY,CACZ,mBACJ,CAEA,6BACI,eACJ,CCbA,4BAEI,gBAAiB,CACjB,eAAgB,CAChB,sBACJ,CCLA,WACI,aAAc,CAEd,SAAU,CACV,4CAA8C,CAF9C,iBAGJ,CAEA,uBAEI,SAAU,CADV,kBAEJ,CAEA,sBACI,iBAAkB,CAClB,WACJ,CAEA,iBAEI,sBAAuB,CADvB,iBAEJ,CAEA,uBACI,UACJ,CAEA,yBACI,WACI,cAAe,CAEf,uDACJ,CAEA,sBACI,SACJ,CACJ,CAEA,gDACI,WACI,cAAe,CAEf,uDACJ,CAEA,sBACI,eACJ,CACJ,CAEA,0BACI,WACI,eACJ,CACJ,CAEA,0BACI,WACI,gBACJ,CACJ,CAEA,0BACI,WACI,gBACJ,CACJ,CClEA,cACI,YACJ,CAEA,WACI,aACJ,CAEA,iBACI,SACJ,CAEA,eAKI,kBAAmB,CAMnB,mCAAoC,CACpC,iBAAkB,CATlB,WAAY,CAUZ,iCAAsC,CATtC,YAAa,CAIb,WAAY,CAFZ,sBAAuB,CAGvB,gBAAiB,CAKjB,SAAU,CAbV,iBAAkB,CAClB,UAAW,CAQX,iBAAkB,CAMlB,mBAAqB,CADrB,8CAAkD,CARlD,UAUJ,CAEA,qDAEI,SAAU,CACV,kBACJ,CCnCA,kBACI,eACJ,CAEA,kBACI,gBACJ,CAEA,oBAEI,gBAAiB,CADjB,eAEJ,CAEA,YACI,eACJ,CCfA,eACI,eACJ,CAEA,eAEI,gBAAiB,CACjB,eAAgB,CAFhB,6BAGJ,CAEA,yBACI,eACI,eACJ,CACJ,CCdA,UACI,6BACJ,CAEA,uBACI,8BACJ","file":"screen.css","sourcesContent":[":root {\n --color-primary-text: #333;\n --color-secondary-text: #999;\n --color-white: #fff;\n --color-lighter-gray: #f6f6f6;\n --color-light-gray: #e6e6e6;\n --color-mid-gray: #ccc;\n --color-dark-gray: #444;\n --color-darker-gray: #15171a;\n --color-black: #000;\n --font-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; /* stylelint-disable-line value-keyword-case */\n --font-serif: Georgia, serif; /* stylelint-disable-line value-keyword-case */\n --font-mono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; /* stylelint-disable-line value-keyword-case */\n --head-nav-gap: 2.8rem;\n --h1-size: 4.6rem;\n --gap: 3.6rem;\n --header-spacing: 80px;\n}\n\n@media (max-width: 767px) {\n :root {\n --h1-size: 3.2rem !important;\n --gap: 2rem;\n --header-spacing: 48px;\n }\n}\n","/* Box sizing rules */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/* Remove default margin */\nbody,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nfigure,\nblockquote,\ndl,\ndd {\n margin: 0;\n}\n\n/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\nul[role=\"list\"],\nol[role=\"list\"] {\n list-style: none;\n}\n\n/* Set core root defaults */\nhtml:focus-within {\n scroll-behavior: smooth;\n}\n\n/* Set core body defaults */\nbody {\n min-height: 100vh;\n line-height: 1.5;\n text-rendering: optimizespeed;\n}\n\n/* A elements that don't have a class get default styles */\na:not([class]) {\n text-decoration-skip-ink: auto;\n}\n\n/* Make images easier to work with */\nimg,\npicture {\n display: block;\n max-width: 100%;\n}\n\n/* Inherit fonts for inputs and buttons */\ninput,\nbutton,\ntextarea,\nselect {\n font: inherit;\n}\n\n/* Remove all animations and transitions for people that prefer not to see them */\n@media (prefers-reduced-motion: reduce) {\n html:focus-within {\n scroll-behavior: auto;\n }\n\n *,\n *::before,\n *::after {\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n scroll-behavior: auto !important;\n }\n}\n","html {\n font-size: 62.5%;\n}\n\nbody {\n font-family: var(--gh-font-body, var(--font-sans));\n font-size: 1.6rem;\n line-height: 1.6;\n color: var(--color-primary-text);\n background-color: var(--color-white);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nimg {\n height: auto;\n}\n\na {\n color: var(--color-darker-gray);\n text-decoration: none;\n}\n\na:hover {\n opacity: 0.8;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-family: var(--gh-font-heading, var(--font-sans));\n line-height: 1.15;\n color: var(--color-darker-gray);\n letter-spacing: -0.02em;\n}\n\nh1 {\n font-size: var(--h1-size);\n}\n\nh2 {\n font-size: 2.8rem;\n}\n\nh3 {\n font-size: 2.4rem;\n}\n\nh4 {\n font-size: 2.2rem;\n}\n\nh5 {\n font-size: 2rem;\n}\n\nh6 {\n font-size: 1.8rem;\n}\n\nhr {\n width: 100%;\n height: 1px;\n background-color: var(--color-light-gray);\n border: 0;\n}\n\nblockquote:not([class]) {\n padding-left: 2rem;\n border-left: 4px solid var(--ghost-accent-color);\n}\n\nfigcaption {\n margin-top: 1.6rem;\n font-size: 1.4rem;\n line-height: 1.4;\n color: var(--color-secondary-text);\n text-align: center;\n}\n\n.kg-width-full figcaption {\n padding: 0 1.6rem;\n}\n\n.gh-content figcaption a {\n color: var(--color-darker-gray);\n text-decoration: none;\n}\n\npre {\n padding: 1.6rem 2.4rem;\n overflow-x: scroll;\n hyphens: none;\n line-height: 1.5;\n white-space: pre;\n background-color: var(--color-lighter-gray);\n -webkit-overflow-scrolling: touch;\n}\n\ncode {\n font-family: var(--font-mono);\n font-size: 15px;\n}\n\n:not(pre) > code {\n padding: 0.4rem;\n color: var(--ghost-accent-color);\n background-color: var(--color-lighter-gray);\n border-radius: 3px;\n}\n\niframe {\n display: block;\n width: 100%;\n overflow: hidden;\n border: 0;\n}\n\n@media (max-width: 767px) {\n h2 {\n font-size: 2.4rem;\n }\n\n h3 {\n font-size: 2.1rem;\n }\n}\n",".gh-site {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.gh-main {\n flex-grow: 1;\n padding-top: 8rem;\n padding-bottom: 8rem;\n}\n\n.page-template .gh-main {\n padding-block: 0;\n}\n\n.gh-outer {\n padding-right: var(--gap);\n padding-left: var(--gap);\n}\n\n.gh-inner {\n max-width: var(--container-width, 1200px);\n margin: 0 auto;\n}\n\n/* Canvas creates a multi-column, centered grid which the post\nis laid out on top of. Canvas just defines the grid, we don't\nuse it for applying any other styles. */\n\n.gh-canvas,\n.kg-width-full.kg-content-wide {\n --main: min(var(--content-width, 720px), 100% - var(--gap) * 2);\n --wide: minmax(0, calc((var(--container-width, 1200px) - var(--content-width, 720px)) / 2));\n --full: minmax(var(--gap), 1fr);\n\n display: grid;\n grid-template-columns:\n [full-start] var(--full)\n [wide-start] var(--wide)\n [main-start] var(--main) [main-end]\n var(--wide) [wide-end]\n var(--full) [full-end];\n}\n\n.gh-canvas > * {\n grid-column: main;\n}\n\n.kg-width-wide,\n.kg-content-wide > div {\n grid-column: wide;\n}\n\n.kg-width-full {\n grid-column: full;\n}\n\n.kg-width-full img {\n width: 100%;\n}\n\n@media (max-width: 767px) {\n #gh-main {\n padding-top: 4.8rem;\n padding-bottom: 4.8rem;\n }\n}\n",".gh-head {\n height: 100px;\n background-color: var(--color-white);\n}\n\n.gh-head-inner {\n display: grid;\n grid-template-columns: 1fr auto auto;\n grid-auto-flow: row dense;\n column-gap: var(--head-nav-gap);\n align-items: center;\n height: 100%;\n}\n\n.gh-head-brand {\n line-height: 1;\n}\n\n.gh-head-brand-wrapper {\n display: flex;\n align-items: center;\n}\n\n.gh-head-logo {\n position: relative;\n font-family: var(--gh-font-heading, var(--font-sans));\n font-size: 2.4rem;\n font-weight: 700;\n letter-spacing: -0.02em;\n}\n\n.gh-head-logo img {\n max-height: 40px;\n}\n\n.gh-head-logo img:nth-child(2) {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n}\n\n.gh-head-menu {\n display: flex;\n gap: var(--head-nav-gap);\n align-items: center;\n}\n\n.gh-head .nav {\n display: inline-flex;\n gap: var(--head-nav-gap);\n align-items: center;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n list-style: none;\n}\n\n.gh-head .nav-more-toggle {\n position: relative;\n margin: 0 -6px;\n font-size: inherit;\n text-transform: inherit;\n}\n\n.gh-head .nav-more-toggle svg {\n width: 24px;\n height: 24px;\n}\n\n.gh-head-actions {\n display: flex;\n gap: var(--head-nav-gap);\n align-items: center;\n justify-content: flex-end;\n}\n\n.gh-head-members {\n display: flex;\n gap: 20px;\n align-items: center;\n white-space: nowrap;\n}\n\n.gh-head-btn.gh-btn {\n font-size: inherit;\n font-weight: 600;\n}\n\n.gh-head-btn:not(.gh-btn) {\n display: inline-flex;\n align-items: center;\n color: var(--ghost-accent-color);\n}\n\n.gh-head-btn svg {\n width: 1.3em;\n height: 1.3em;\n}\n\n.gh-search {\n margin-right: -6px;\n margin-left: -6px;\n}\n\n.gh-search:hover {\n opacity: 0.9;\n}\n\n.gh-head-brand .gh-search {\n margin-right: 8px;\n}\n\n@media (max-width: 767px) {\n .gh-head-members {\n flex-direction: column-reverse;\n gap: 16px;\n width: 100%;\n }\n\n .gh-head-actions .gh-search {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .gh-head-brand .gh-search {\n display: none;\n }\n\n body:not(.is-dropdown-loaded) .gh-head-menu .nav > li {\n opacity: 0;\n }\n}\n\n/* Header variants\n/* ---------------------------------------------------------- */\n\n/*\n======================================================================\nLOGO Home About Collection Author Portal Login Subscribe\n======================================================================\n*/\n\n.is-head-left-logo .gh-head-inner {\n grid-template-columns: auto 1fr auto;\n}\n\n@media (min-width: 992px) {\n .is-head-left-logo .gh-head-menu {\n margin-right: 64px;\n margin-left: 16px;\n }\n}\n\n/*\n======================================================================\nHome About Collection LOGO Login Subscribe\n======================================================================\n*/\n\n.is-head-middle-logo .gh-head-inner {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.is-head-middle-logo .gh-head-brand {\n grid-column-start: 2;\n}\n\n.is-head-middle-logo .gh-head-actions {\n gap: 28px;\n}\n\n@media (min-width: 992px) {\n .is-head-middle-logo .gh-head-menu {\n margin-right: 64px;\n }\n}\n\n/*\n======================================================================\nSearch LOGO Login Subscribe\n Home About Collection Author Portal\n======================================================================\n*/\n\n.is-head-stacked .gh-head {\n position: relative;\n height: auto;\n}\n\n.is-head-stacked .gh-head-inner {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.is-head-stacked .gh-head-brand {\n display: flex;\n grid-row-start: 1;\n grid-column-start: 2;\n min-height: 80px;\n}\n\n@media (max-width: 767px) {\n .is-head-stacked .gh-head-brand {\n min-height: unset;\n }\n}\n\n@media (min-width: 992px) {\n .is-head-stacked .gh-head-inner {\n padding: 0;\n }\n\n .is-head-stacked .gh-head-brand {\n display: flex;\n align-items: center;\n height: 80px;\n }\n\n .is-head-stacked .gh-head-menu {\n grid-row-start: 2;\n grid-column: 1 / 4;\n justify-content: center;\n height: 56px;\n margin: 0 48px;\n }\n\n .is-head-stacked .gh-head-menu::before,\n .is-head-stacked .gh-head-menu::after {\n position: absolute;\n top: 80px;\n left: 0;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: var(--color-light-gray);\n }\n\n .is-head-stacked .gh-head-menu::after {\n top: 136px;\n }\n\n .is-head-stacked .gh-head-actions {\n grid-row-start: 1;\n grid-column: 1 / 4;\n justify-content: space-between;\n }\n}\n\n/* Transparent header\n/* ---------------------------------------------------------- */\n\n.is-head-transparent .gh-head {\n position: absolute;\n right: 0;\n left: 0;\n z-index: 90;\n background-color: transparent;\n}\n\n.is-head-transparent .gh-head-logo,\n.is-head-transparent .gh-head-logo a,\n.is-head-transparent .gh-head .nav > li a,\n.is-head-transparent .gh-head-description,\n.is-head-transparent .gh-search,\n.is-head-transparent .gh-social,\n.is-head-transparent .nav-more-toggle,\n.is-head-transparent .gh-head-link {\n color: var(--color-white);\n}\n\n.is-head-transparent .gh-burger::before,\n.is-head-transparent .gh-burger::after {\n background-color: var(--color-white);\n}\n\n.is-head-transparent .gh-head-btn {\n color: #15171a;\n background-color: #fff;\n}\n\n.is-head-transparent .gh-head-menu::before,\n.is-head-transparent .gh-head-menu::after {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.is-head-transparent #announcement-bar-root {\n position: absolute;\n right: 0;\n left: 0;\n}\n\n.is-head-transparent #announcement-bar-root:not(:empty) + :is(.site, .gh-site) .gh-head {\n margin-top: 48px;\n}\n\n/* Dark header\n/* ---------------------------------------------------------- */\n\n.is-head-dark:not(.is-head-transparent) .gh-head {\n background-color: var(--color-darker-gray);\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-head-logo,\n.is-head-dark:not(.is-head-transparent) .gh-head-logo a,\n.is-head-dark:not(.is-head-transparent) .gh-head .nav a,\n.is-head-dark:not(.is-head-transparent) .gh-head-description,\n.is-head-dark:not(.is-head-transparent) .gh-search,\n.is-head-dark:not(.is-head-transparent) .gh-social,\n.is-head-dark:not(.is-head-transparent) .nav-more-toggle,\n.is-head-dark:not(.is-head-transparent) .gh-head-link {\n color: var(--color-white);\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-burger::before,\n.is-head-dark:not(.is-head-transparent) .gh-burger::after {\n background-color: var(--color-white);\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-head-btn {\n color: #15171a;\n background-color: #fff;\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-head-menu::before,\n.is-head-dark:not(.is-head-transparent) .gh-head-menu::after {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n/* Brand header\n/* ---------------------------------------------------------- */\n\n.is-head-brand:not(.is-head-transparent) .gh-head {\n background-color: var(--ghost-accent-color);\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-head-logo,\n.is-head-brand:not(.is-head-transparent) .gh-head-logo a,\n.is-head-brand:not(.is-head-transparent) .gh-head .nav a,\n.is-head-brand:not(.is-head-transparent) .gh-head-description,\n.is-head-brand:not(.is-head-transparent) .gh-search,\n.is-head-brand:not(.is-head-transparent) .gh-social,\n.is-head-brand:not(.is-head-transparent) .nav-more-toggle,\n.is-head-brand:not(.is-head-transparent) .gh-head-link {\n color: var(--color-white);\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-burger::before,\n.is-head-brand:not(.is-head-transparent) .gh-burger::after {\n background-color: var(--color-white);\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-head-btn {\n color: #15171a;\n background-color: #fff;\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-head-menu::before,\n.is-head-brand:not(.is-head-transparent) .gh-head-menu::after {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n/* Dropdown menu\n/* ---------------------------------------------------------- */\n\n.gh-dropdown {\n position: absolute;\n top: 100%;\n right: -16px;\n z-index: 90;\n width: 200px;\n padding: 12px 0;\n margin-top: 24px;\n text-align: left;\n visibility: hidden;\n background-color: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04), 0 7px 20px -5px rgba(0, 0, 0, 0.15);\n opacity: 0;\n transition: opacity 0.3s, transform 0.2s;\n transform: translate3d(0, 6px, 0);\n}\n\n.is-head-middle-logo .gh-dropdown {\n right: auto;\n left: -24px;\n}\n\n.is-dropdown-mega .gh-dropdown {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-auto-flow: column;\n column-gap: 40px;\n width: auto;\n padding: 20px 32px;\n}\n\n.is-dropdown-open .gh-dropdown {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.gh-dropdown li a {\n display: block;\n padding: 6px 20px;\n color: #15171a !important;\n}\n\n.is-dropdown-mega .gh-dropdown li a {\n padding: 8px 0;\n}\n\n/* Mobile menu\n/* ---------------------------------------------------------- */\n\n.gh-burger {\n position: relative;\n display: none;\n width: 30px;\n height: 30px;\n padding: 0;\n margin-right: -3px;\n appearance: none;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n}\n\n.gh-burger::before,\n.gh-burger::after {\n position: absolute;\n left: 3px;\n width: 24px;\n height: 1px;\n content: \"\";\n background-color: var(--color-darker-gray);\n transition: all 0.2s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;\n}\n\n.gh-burger::before {\n top: 11px;\n}\n\n.gh-burger::after {\n bottom: 11px;\n}\n\n.is-head-open .gh-burger::before {\n top: 15px;\n transform: rotate(45deg);\n}\n\n.is-head-open .gh-burger::after {\n bottom: 14px;\n transform: rotate(-45deg);\n}\n\n@media (max-width: 767px) {\n #gh-head {\n height: 64px;\n }\n\n #gh-head .gh-head-inner {\n grid-template-rows: auto 1fr auto;\n grid-template-columns: 1fr;\n gap: 48px;\n }\n\n #gh-head .gh-head-brand {\n display: grid;\n grid-template-columns: 1fr auto auto;\n grid-column-start: 1;\n align-items: center;\n height: 64px;\n }\n\n #gh-head .gh-head-logo {\n font-size: 2.2rem;\n }\n\n .gh-burger {\n display: block;\n }\n\n #gh-head .gh-head-menu,\n #gh-head .gh-head-actions {\n position: fixed;\n justify-content: center;\n visibility: hidden;\n opacity: 0;\n }\n\n #gh-head .gh-head-menu {\n transition: none;\n transform: translateY(0);\n }\n\n #gh-head .nav {\n gap: 20px;\n align-items: center;\n line-height: 1.4;\n }\n\n #gh-head .nav a {\n font-size: 2.6rem;\n font-weight: 600;\n text-transform: none;\n }\n\n #gh-head .nav li {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n #gh-head .gh-head-actions {\n text-align: center;\n }\n\n #gh-head :is(.gh-head-btn, .gh-head-link) {\n opacity: 0;\n transform: translateY(8px);\n }\n\n #gh-head .gh-head-btn {\n width: 100%;\n font-size: 1.8rem;\n text-transform: none;\n }\n\n #gh-head .gh-head-btn:not(.gh-btn) {\n font-size: 2rem;\n }\n\n #gh-main {\n transition: opacity 0.4s;\n }\n\n .is-head-open #gh-head {\n position: fixed;\n inset: 0;\n z-index: 3999999;\n height: 100%;\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n }\n\n .is-head-open:not(.is-head-brand):not(.is-head-dark):not(.is-head-transparent) #gh-head {\n background-color: var(--color-white);\n }\n\n .is-head-open.is-head-transparent #gh-head,\n .is-head-open:is(.is-head-transparent, .is-head-brand) #gh-head .gh-head-actions {\n background-color: var(--ghost-accent-color);\n }\n\n .is-head-open.is-head-dark #gh-head,\n .is-head-open.is-head-dark #gh-head .gh-head-actions {\n background-color: var(--color-darker-gray);\n }\n\n .is-head-open #gh-head .gh-head-menu,\n .is-head-open #gh-head .gh-head-actions {\n position: static;\n visibility: visible;\n opacity: 1;\n }\n\n .is-head-open #gh-head .nav {\n display: flex;\n flex-direction: column;\n }\n\n .is-head-open #gh-head .nav li {\n opacity: 1;\n transition: transform 0.2s, opacity 0.2s;\n transform: translateY(0);\n }\n\n .is-head-open #gh-head .gh-head-actions {\n position: sticky;\n right: 0;\n bottom: 0;\n left: 0;\n display: inline-flex;\n flex-direction: column;\n gap: 12px;\n align-items: center;\n padding: var(--gap) 0 calc(var(--gap) + 8px);\n background-color: var(--color-white);\n }\n\n .is-head-open #gh-head :is(.gh-head-btn, .gh-head-link) {\n opacity: 1;\n transition: transform 0.4s, opacity 0.4s;\n transition-delay: 0.2s;\n transform: translateY(0);\n }\n\n .is-head-open #gh-head .gh-head-link {\n transition-delay: 0.4s;\n }\n\n .is-head-open #gh-main {\n opacity: 0;\n }\n}\n",".gh-cover {\n position: relative;\n min-height: var(--cover-height, 50vh);\n padding-top: 6.4rem;\n padding-bottom: 6.4rem;\n}\n\n.gh-cover-image {\n position: absolute;\n inset: 0;\n z-index: -1;\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-cover-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-cover-description {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n",".has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-card-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n letter-spacing: -0.01em;\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-card-excerpt {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n",".gh-card {\n word-break: break-word;\n}\n",".page-template .gh-article-header {\n margin-top: var(--header-spacing, 80px);\n}\n\n.gh-article-tag {\n color: var(--ghost-accent-color);\n}\n\n.gh-article-title {\n word-break: break-word;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-article-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n letter-spacing: -0.01em;\n}\n\n.gh-article-excerpt {\n margin-top: 2rem;\n font-size: 2.1rem;\n line-height: 1.5;\n color: var(--color-secondary-text);\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-article-excerpt {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n.gh-article-image {\n grid-column: wide-start/wide-end;\n margin-top: 4rem;\n}\n\n.gh-article-image img {\n width: 100%;\n}\n\n@media (max-width: 767px) {\n .gh-article-excerpt {\n font-size: 1.9rem;\n }\n\n .gh-article-image {\n margin-top: 2.4rem;\n }\n}\n","/* Content refers to styling all page and post content that is\ncreated within the Ghost editor. The main content handles\nheadings, text, images and lists. We deal with cards lower down. */\n\n.gh-content {\n margin-top: 4rem;\n font-size: var(--content-font-size, 1.8rem);\n letter-spacing: var(--content-letter-spacing, 0);\n word-break: break-word;\n}\n\n/* Default vertical spacing */\n.gh-content > * + * {\n margin-top: calc(1.6em * var(--content-spacing-multiplier, 1));\n margin-bottom: 0;\n}\n\n/* [id] represents all headings h1-h6, reset all margins */\n.gh-content > [id] {\n margin: 0;\n}\n\n.gh-content > .kg-card + [id] {\n margin-top: calc(2em * var(--content-spacing-multiplier, 1)) !important;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-content > [id] {\n font-family: var(--gh-font-heading, var(--font-serif));\n letter-spacing: -0.01em;\n}\n\n/* Add back a top margin to all headings, unless a heading\nis the very first element in the post content */\n.gh-content > [id]:not(:first-child) {\n margin-top: calc(1.6em * var(--content-spacing-multiplier, 1));\n}\n\n/* Add a small margin between a heading and anything after it */\n.gh-content > [id] + * {\n margin-top: calc(0.8em * var(--content-spacing-multiplier, 1));\n}\n\n/* A larger margin before/after HRs and blockquotes */\n.gh-content > hr,\n.gh-content > blockquote {\n position: relative;\n margin-top: calc(2.4em * var(--content-spacing-multiplier, 1));\n}\n\n.gh-content > hr + *,\n.gh-content > blockquote + * {\n margin-top: calc(2.4em * var(--content-spacing-multiplier, 1));\n}\n\n/* Now the content typography styles */\n.gh-content h2 {\n font-size: 1.6em;\n}\n\n.gh-content h3 {\n font-size: 1.4em;\n}\n\n.gh-content a {\n color: var(--ghost-accent-color);\n text-decoration: underline;\n word-break: break-word;\n}\n\n.gh-content .kg-callout-card .kg-callout-text,\n.gh-content .kg-toggle-card .kg-toggle-content > ol,\n.gh-content .kg-toggle-card .kg-toggle-content > ul,\n.gh-content .kg-toggle-card .kg-toggle-content > p {\n font-size: 0.95em;\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > blockquote,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > ol,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > ul,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > dl,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > p,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-callout-text,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-toggle-content > ol,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-toggle-content > ul,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-toggle-content > p {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n.gh-content ul,\n.gh-content ol,\n.gh-content dl {\n padding-left: 2.8rem;\n}\n\n.gh-content :is(li + li, li :is(ul, ol)) {\n margin-top: 0.8rem;\n}\n\n.gh-content ol ol li {\n list-style-type: lower-alpha;\n}\n\n.gh-content ol ol ol li {\n list-style-type: lower-roman;\n}\n\n.gh-content table:not(.gist table) {\n display: inline-block;\n width: auto;\n max-width: 100%;\n overflow-x: auto;\n font-family: var(--font-sans);\n font-size: 1.6rem;\n white-space: nowrap;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\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-repeat: no-repeat;\n background-attachment: scroll, scroll;\n background-size: 10px 100%, 10px 100%;\n}\n\n.gh-content table:not(.gist 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-repeat: no-repeat;\n background-size: 20px 100%;\n}\n\n.gh-content table:not(.gist 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-repeat: no-repeat;\n background-position: 100% 0;\n background-size: 20px 100%;\n}\n\n.gh-content table:not(.gist table) th {\n font-size: 1.2rem;\n font-weight: 700;\n color: var(--color-darkgrey);\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.2px;\n background-color: var(--color-white);\n}\n\n.gh-content table:not(.gist table) th,\n.gh-content table:not(.gist table) td {\n padding: 6px 12px;\n border: 1px solid var(--color-light-gray);\n}\n\n/* Page without header */\n.page-template .gh-content:only-child {\n margin-top: 0 !important;\n}\n\n.page-template .gh-content:only-child > *:first-child:not(.kg-width-full) {\n margin-top: var(--header-spacing, 80px);\n}\n\n.page-template .gh-content > *:last-child:not(.kg-width-full) {\n margin-bottom: var(--footer-spacing, 0);\n}\n\n@media (max-width: 767px) {\n .gh-content {\n margin-top: 3.2rem;\n font-size: 1.7rem;\n }\n}\n",".gh-comments {\n margin-top: 64px;\n margin-bottom: -24px;\n}\n\n.gh-comments-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 40px;\n}\n\n.gh-comments .gh-comments-title {\n margin-bottom: 28px;\n}\n\n.gh-comments-header .gh-comments-title {\n margin-bottom: 0;\n}\n\n.gh-comments-count {\n color: var(--color-secondary-text);\n}\n",".gh-cta-gradient {\n position: relative;\n grid-column: full-start / full-end;\n height: 160px;\n margin-top: -16rem;\n margin-bottom: 4rem;\n content: \"\";\n background: linear-gradient(180deg, rgba(255, 255, 255, 0), var(--color-white));\n}\n\n.gh-cta-gradient:first-child {\n display: none;\n}\n\n.gh-cta {\n display: flex;\n flex-direction: column;\n margin-bottom: 4rem;\n text-align: center;\n}\n\n.gh-cta-title {\n margin-bottom: 3.2rem;\n font-size: 2.2rem;\n letter-spacing: -0.02em;\n}\n\n.gh-cta-actions {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.gh-cta-link {\n margin-top: 0.8rem;\n font-size: 1.4rem;\n color: var(--color-secondary-text);\n text-decoration: none;\n cursor: pointer;\n}\n\n.gh-cta-link:hover {\n color: var(--color-darker-gray);\n}\n\n@media (max-width: 767px) {\n .gh-cta-actions {\n column-gap: 0.8rem;\n }\n}\n","/* Add extra margin before/after any cards,\nexcept for when immediately preceeded by a heading */\n\n.gh-content :not(.kg-card):not(table):not([id]) + :is(.kg-card, table) {\n margin-top: calc(2em * var(--content-spacing-multiplier, 1));\n}\n\n.gh-content :is(.kg-card, table) + :not(.kg-card):not(table):not([id]) {\n margin-top: calc(2em * var(--content-spacing-multiplier, 1));\n}\n\n/* Remove space between full-width cards */\n.gh-content > .kg-width-full + .kg-width-full:not(.kg-width-full.kg-card-hascaption + .kg-width-full) {\n margin-top: 0;\n}\n\n/* Image\n/* ---------------------------------------------------------- */\n\n.kg-image {\n margin-right: auto;\n margin-left: auto;\n}\n\n/* Embed\n/* ---------------------------------------------------------- */\n\n.kg-embed-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n/* Gallery\n/* ---------------------------------------------------------- */\n\n.kg-image[width][height],\n.kg-gallery-image {\n cursor: pointer;\n}\n\n.kg-image-card a:hover,\n.kg-gallery-image a:hover {\n opacity: 1 !important;\n}\n\n/* Toggle\n/* ---------------------------------------------------------- */\n\n.kg-card.kg-toggle-card .kg-toggle-heading-text {\n font-size: 2rem;\n font-weight: 700;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .kg-toggle-card .kg-toggle-heading-text {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n/* Callout\n/* ---------------------------------------------------------- */\n\n.kg-callout-card.kg-card {\n border-radius: 0.25em;\n}\n\n.kg-callout-card-accent a {\n text-decoration: underline;\n}\n\n/* Blockquote\n/* ---------------------------------------------------------- */\n\nblockquote.kg-blockquote-alt {\n font-style: normal;\n font-weight: 400;\n color: var(--color-secondary-text);\n}\n\n/* Button\n/* ---------------------------------------------------------- */\n\n.kg-card.kg-button-card .kg-btn {\n font-size: 1em;\n}\n\n/* Header\n/* ---------------------------------------------------------- */\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .kg-card.kg-header-card h2.kg-header-card-header {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .kg-header-card h3.kg-header-card-subheader {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n/* Bookmark\n/* ---------------------------------------------------------- */\n\n.kg-bookmark-card a.kg-bookmark-container,\n.kg-bookmark-card a.kg-bookmark-container:hover,\n.kg-file-card-container,\n.kg-file-card-container:hover,\n.kg-audio-card,\n.kg-product-card-container {\n background: var(--background-color, #fff) !important;\n color: var(--color-darker-gray, #222) !important;\n opacity: 1;\n}\n\n.kg-bookmark-card .kg-bookmark-container {\n border-radius: 0.25em !important;\n}\n\n.kg-bookmark-card .kg-bookmark-content {\n padding: 1.15em;\n}\n\n.kg-bookmark-card .kg-bookmark-title {\n font-size: 0.9em;\n}\n\n.kg-bookmark-card .kg-bookmark-description {\n max-height: none;\n margin-top: 0.3em;\n font-size: 0.8em;\n}\n\n.kg-bookmark-card .kg-bookmark-metadata {\n font-size: 0.8em;\n}\n\n.kg-bookmark-card .kg-bookmark-thumbnail img {\n border-radius: 0 0.2em 0.2em 0;\n}\n\n/* Audio\n/* ---------------------------------------------------------- */\n\n.has-light-text .kg-audio-card button {\n color: #fff;\n}\n\n.has-light-text .kg-audio-card .kg-audio-volume-slider {\n color: rgb(255 255 255 / 0.3)\n}\n",".pagination {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n margin-top: 6.4rem;\n}\n\n.page-number {\n grid-column-start: 2;\n}\n\n.older-posts {\n text-align: right;\n}\n",".gh-navigation {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n column-gap: 2.4rem;\n align-items: center;\n}\n\n.gh-navigation > div {\n display: flex;\n align-items: center;\n}\n\n.gh-navigation-next {\n justify-content: flex-end;\n}\n\n.gh-navigation-link {\n display: inline-flex;\n align-items: center;\n}\n\n.gh-navigation-link svg {\n width: 16px;\n height: 16px;\n}\n\n.gh-navigation-previous svg {\n margin-right: 0.4rem;\n}\n\n.gh-navigation-next svg {\n margin-left: 0.4rem;\n}\n\n@media (max-width: 767px) {\n .gh-navigation-hide {\n display: none;\n }\n}\n",".gh-btn {\n display: inline-flex;\n gap: 0.4em;\n align-items: center;\n justify-content: center;\n padding: calc(0.75em * var(--multiplier, 1)) calc(1.15em * var(--multiplier, 1));\n font-size: 1.6rem;\n font-weight: 700;\n line-height: 1;\n color: var(--color-white);\n letter-spacing: inherit;\n cursor: pointer;\n background-color: var(--color-darker-gray);\n border: 0;\n border-radius: 100px;\n}\n\n.gh-btn:hover {\n opacity: 0.95;\n}\n\n.gh-post-upgrade-cta .gh-btn {\n line-height: inherit;\n}\n\n.gh-primary-btn {\n background-color: var(--ghost-accent-color);\n}\n\n.gh-outline-btn {\n color: var(--color-darker-gray);\n text-decoration: none;\n background-color: transparent;\n border: 1px solid var(--color-light-gray);\n}\n\n.gh-outline-btn:hover {\n border-color: var(--color-mid-gray);\n opacity: 1;\n}\n\n.gh-icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n padding: 0;\n color: var(--darker-gray-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: none;\n}\n\n.gh-icon-btn svg {\n width: 20px;\n height: 20px;\n}\n\n.gh-text-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n color: var(--darker-gray-color);\n letter-spacing: inherit;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: none;\n will-change: opacity;\n}\n\n.gh-text-btn:hover {\n opacity: 0.8;\n}\n",".gh-foot {\n padding-top: 8rem;\n padding-bottom: 8rem;\n color: var(--color-secondary-text);\n white-space: nowrap;\n}\n\n.gh-foot-inner {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n gap: 40px;\n font-size: 1.3rem;\n}\n\n.no-menu .gh-foot-inner {\n display: flex;\n flex-direction: column;\n gap: 24px;\n align-items: center;\n}\n\n.gh-foot-menu .nav {\n display: inline-flex;\n flex-wrap: wrap;\n row-gap: 4px;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.gh-foot-menu .nav li {\n display: flex;\n align-items: center;\n}\n\n.gh-foot-menu .nav li + li::before {\n padding: 0 1.2rem;\n font-size: 0.9rem;\n line-height: 0;\n content: \"•\";\n}\n\n.gh-powered-by {\n text-align: right;\n}\n\n.gh-foot a {\n color: var(--color-secondary-text);\n}\n\n.gh-foot a:hover {\n color: var(--color-darker-gray);\n opacity: 1;\n}\n\n@media (max-width: 767px) {\n .gh-foot {\n padding-top: 6.4rem;\n padding-bottom: 12rem;\n }\n\n .gh-foot-inner {\n grid-template-columns: 1fr;\n text-align: center;\n }\n\n .gh-foot-menu .nav {\n flex-direction: column;\n }\n\n .gh-foot-menu .nav li + li {\n margin-top: 0.4rem;\n }\n\n .gh-foot-menu .nav li + li::before {\n display: none;\n }\n\n .gh-powered-by {\n text-align: center;\n }\n}\n",".pswp {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 3999999;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n -ms-touch-action: none;\n touch-action: none;\n outline: none;\n backface-visibility: hidden;\n -webkit-text-size-adjust: 100%;\n}\n\n.pswp img {\n max-width: none;\n}\n\n.pswp--animate_opacity {\n opacity: 0.001;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n will-change: opacity;\n}\n\n.pswp--open {\n display: block;\n}\n\n.pswp--zoom-allowed .pswp__img {\n cursor: zoom-in;\n}\n\n.pswp--zoomed-in .pswp__img {\n cursor: grab;\n}\n\n.pswp--dragging .pswp__img {\n cursor: grabbing;\n}\n\n.pswp__bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.85);\n opacity: 0;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n transform: translateZ(0);\n backface-visibility: hidden;\n will-change: opacity;\n}\n\n.pswp__scroll-wrap {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.pswp__container,\n.pswp__zoom-wrap {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n touch-action: none;\n backface-visibility: hidden;\n}\n\n.pswp__container,\n.pswp__img {\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n\n.pswp__zoom-wrap {\n position: absolute;\n width: 100%;\n transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);\n transform-origin: left top;\n}\n\n.pswp--animated-in .pswp__bg,\n.pswp--animated-in .pswp__zoom-wrap {\n transition: none;\n}\n\n.pswp__item {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n}\n\n.pswp__img {\n position: absolute;\n top: 0;\n left: 0;\n width: auto;\n height: auto;\n}\n\n.pswp__img--placeholder {\n backface-visibility: hidden;\n}\n\n.pswp__img--placeholder--blank {\n background: var(--color-black);\n}\n\n.pswp--ie .pswp__img {\n top: 0;\n left: 0;\n width: 100% !important;\n height: auto !important;\n}\n\n.pswp__error-msg {\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n margin-top: -8px;\n font-size: 14px;\n line-height: 16px;\n color: var(--color-secondary-text);\n text-align: center;\n}\n\n.pswp__error-msg a {\n color: var(--color-secondary-text);\n text-decoration: underline;\n}\n\n.pswp__button {\n position: relative;\n display: block;\n float: right;\n width: 44px;\n height: 44px;\n padding: 0;\n margin: 0;\n overflow: visible;\n appearance: none;\n cursor: pointer;\n background: none;\n border: 0;\n box-shadow: none;\n transition: opacity 0.2s;\n}\n\n.pswp__button:focus,\n.pswp__button:hover {\n opacity: 1;\n}\n\n.pswp__button:active {\n outline: none;\n opacity: 0.9;\n}\n\n.pswp__button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\n.pswp__ui--over-close .pswp__button--close {\n opacity: 1;\n}\n\n.pswp__button,\n.pswp__button--arrow--left::before,\n.pswp__button--arrow--right::before {\n width: 44px;\n height: 44px;\n background: url(\"../images/default-skin.png\") 0 0 no-repeat;\n background-size: 264px 88px;\n}\n\n@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {\n .pswp--svg .pswp__button,\n .pswp--svg .pswp__button--arrow--left::before,\n .pswp--svg .pswp__button--arrow--right::before {\n background-image: url(\"../images/default-skin.svg\");\n }\n\n .pswp--svg .pswp__button--arrow--left,\n .pswp--svg .pswp__button--arrow--right {\n background: none;\n }\n}\n\n.pswp__button--close {\n background-position: 0 -44px;\n}\n\n.pswp__button--share {\n background-position: -44px -44px;\n}\n\n.pswp__button--fs {\n display: none;\n}\n\n.pswp--supports-fs .pswp__button--fs {\n display: block;\n}\n\n.pswp--fs .pswp__button--fs {\n background-position: -44px 0;\n}\n\n.pswp__button--zoom {\n display: none;\n background-position: -88px 0;\n}\n\n.pswp--zoom-allowed .pswp__button--zoom {\n display: block;\n}\n\n.pswp--zoomed-in .pswp__button--zoom {\n background-position: -132px 0;\n}\n\n.pswp--touch .pswp__button--arrow--left,\n.pswp--touch .pswp__button--arrow--right {\n visibility: hidden;\n}\n\n.pswp__button--arrow--left,\n.pswp__button--arrow--right {\n position: absolute;\n top: 50%;\n width: 70px;\n height: 100px;\n margin-top: -50px;\n background: none;\n}\n\n.pswp__button--arrow--left {\n left: 0;\n}\n\n.pswp__button--arrow--right {\n right: 0;\n}\n\n.pswp__button--arrow--left::before,\n.pswp__button--arrow--right::before {\n position: absolute;\n top: 35px;\n width: 32px;\n height: 30px;\n content: \"\";\n}\n\n.pswp__button--arrow--left::before {\n left: 6px;\n background-position: -138px -44px;\n}\n\n.pswp__button--arrow--right::before {\n right: 6px;\n background-position: -94px -44px;\n}\n\n.pswp__counter {\n position: absolute;\n top: 0;\n left: 0;\n height: 44px;\n padding: 0 15px;\n font-size: 11px;\n font-weight: 700;\n line-height: 44px;\n color: var(--color-white);\n user-select: none;\n}\n\n.pswp__caption {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n min-height: 44px;\n}\n\n.pswp__caption__center {\n max-width: 420px;\n padding: 25px 15px 30px;\n margin: 0 auto;\n font-size: 11px;\n line-height: 1.6;\n color: var(--color-white);\n text-align: center;\n}\n\n.pswp__caption__center .post-caption-title {\n margin-bottom: 7px;\n font-size: 15px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.pswp__caption__center .post-caption-meta-item + .post-caption-meta-item::before {\n padding: 0 4px;\n content: \"\\02022\";\n}\n\n.pswp__caption--empty {\n display: none;\n}\n\n.pswp__caption--fake {\n visibility: hidden;\n}\n\n.pswp__preloader {\n position: absolute;\n top: 0;\n left: 50%;\n width: 44px;\n height: 44px;\n margin-left: -22px;\n opacity: 0;\n transition: opacity 0.25s ease-out;\n direction: ltr;\n will-change: opacity;\n}\n\n.pswp__preloader__icn {\n width: 20px;\n height: 20px;\n margin: 12px;\n}\n\n.pswp__preloader--active {\n opacity: 1;\n}\n\n.pswp__preloader--active .pswp__preloader__icn {\n background: url(\"../images/preloader.gif\") 0 0 no-repeat;\n}\n\n.pswp--css_animation .pswp__preloader--active {\n opacity: 1;\n}\n\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {\n animation: clockwise 500ms linear infinite;\n}\n\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {\n animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;\n}\n\n.pswp--css_animation .pswp__preloader__icn {\n position: absolute;\n top: 15px;\n left: 15px;\n width: 14px;\n height: 14px;\n margin: 0;\n background: none;\n opacity: 0.75;\n}\n\n.pswp--css_animation .pswp__preloader__cut {\n position: relative;\n width: 7px;\n height: 14px;\n overflow: hidden;\n}\n\n.pswp--css_animation .pswp__preloader__donut {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 14px;\n height: 14px;\n margin: 0;\n background: none;\n border: 2px solid var(--color-white);\n border-bottom-color: transparent;\n border-left-color: transparent;\n border-radius: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n .pswp__preloader {\n position: relative;\n top: auto;\n left: auto;\n float: right;\n margin: 0;\n }\n}\n\n@keyframes clockwise {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes donut-rotate {\n 0% {\n transform: rotate(0);\n }\n\n 50% {\n transform: rotate(-140deg);\n }\n\n 100% {\n transform: rotate(0);\n }\n}\n\n.pswp__ui {\n z-index: 1550;\n visibility: visible;\n opacity: 1;\n -webkit-font-smoothing: auto;\n}\n\n.pswp__top-bar {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 44px;\n}\n\n.pswp__caption,\n.pswp__top-bar,\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n backface-visibility: hidden;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n will-change: opacity;\n}\n\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n visibility: visible;\n}\n\n.pswp__ui--idle .pswp__top-bar {\n opacity: 0;\n}\n\n.pswp__ui--idle .pswp__button--arrow--left,\n.pswp__ui--idle .pswp__button--arrow--right {\n opacity: 0;\n}\n\n.pswp__ui--hidden .pswp__top-bar,\n.pswp__ui--hidden .pswp__caption,\n.pswp__ui--hidden .pswp__button--arrow--left,\n.pswp__ui--hidden .pswp__button--arrow--right {\n opacity: 0.001;\n}\n\n.pswp__ui--one-slide .pswp__button--arrow--left,\n.pswp__ui--one-slide .pswp__button--arrow--right,\n.pswp__ui--one-slide .pswp__counter {\n display: none;\n}\n\n.pswp__element--disabled {\n display: none !important;\n}\n\n.pswp--minimal--dark .pswp__top-bar {\n background: none;\n}\n","@font-face {\n font-family: Inter;\n font-style: normal;\n font-weight: 400;\n src: local(\"\"), url(\"../fonts/inter-v8-latin-regular.woff2\") format(\"woff2\"), url(\"../fonts/inter-v8-latin-regular.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Inter;\n font-style: normal;\n font-weight: 600;\n src: local(\"\"), url(\"../fonts/inter-v8-latin-600.woff2\") format(\"woff2\"), url(\"../fonts/inter-v8-latin-600.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Inter;\n font-style: normal;\n font-weight: 700;\n src: local(\"\"), url(\"../fonts/inter-v8-latin-700.woff2\") format(\"woff2\"), url(\"../fonts/inter-v8-latin-700.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Lora;\n font-style: normal;\n font-weight: 400;\n src: local(\"\"), url(\"../fonts/lora-v23-latin-regular.woff2\") format(\"woff2\"), url(\"../fonts/lora-v23-latin-regular.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Lora;\n font-style: normal;\n font-weight: 700;\n src: local(\"\"), url(\"../fonts/lora-v23-latin-700.woff2\") format(\"woff2\"), url(\"../fonts/lora-v23-latin-700.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Lora;\n font-style: italic;\n font-weight: 400;\n src: local(\"\"), url(\"../fonts/lora-v23-latin-italic.woff2\") format(\"woff2\"), url(\"../fonts/lora-v23-latin-italic.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Lora;\n font-style: italic;\n font-weight: 700;\n src: local(\"\"), url(\"../fonts/lora-v23-latin-700italic.woff2\") format(\"woff2\"), url(\"../fonts/lora-v23-latin-700italic.woff\") format(\"woff\");\n}\n",":root {\n --font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif;\n --font-serif: Lora, Times, serif;\n --color-primary-text: #15171a;\n --content-width: 640px;\n --content-font-size: 1.6rem;\n --grid-gap: 16px;\n}\n",".flexmasonry {\n display: flex;\n flex-flow: column wrap;\n align-content: space-between;\n}\n\n.flexmasonry-item { width: 100%; }\n.flexmasonry-cols-2 .flexmasonry-item { width: 50%; }\n.flexmasonry-cols-3 .flexmasonry-item { width: 33.333%; }\n.flexmasonry-cols-4 .flexmasonry-item { width: 25%; }\n.flexmasonry-cols-5 .flexmasonry-item { width: 20%; }\n.flexmasonry-cols-6 .flexmasonry-item { width: 16.666%; }\n.flexmasonry-cols-7 .flexmasonry-item { width: 14.285%; }\n.flexmasonry-cols-8 .flexmasonry-item { width: 12.5%; }\n\n.flexmasonry-cols-2 .flexmasonry-item:nth-child(2n+1) { order: 1; }\n.flexmasonry-cols-2 .flexmasonry-item:nth-child(2n) { order: 2; }\n\n.flexmasonry-cols-3 .flexmasonry-item:nth-child(3n+1) { order: 1; }\n.flexmasonry-cols-3 .flexmasonry-item:nth-child(3n+2) { order: 2; }\n.flexmasonry-cols-3 .flexmasonry-item:nth-child(3n) { order: 3; }\n\n.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+1) { order: 1; }\n.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+2) { order: 2; }\n.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n+3) { order: 3; }\n.flexmasonry-cols-4 .flexmasonry-item:nth-child(4n) { order: 4; }\n\n.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+1) { order: 1; }\n.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+2) { order: 2; }\n.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+3) { order: 3; }\n.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n+4) { order: 4; }\n.flexmasonry-cols-5 .flexmasonry-item:nth-child(5n) { order: 5; }\n\n.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+1) { order: 1; }\n.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+2) { order: 2; }\n.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+3) { order: 3; }\n.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+4) { order: 4; }\n.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n+5) { order: 5; }\n.flexmasonry-cols-6 .flexmasonry-item:nth-child(6n) { order: 6; }\n\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+1) { order: 1; }\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+2) { order: 2; }\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+3) { order: 3; }\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+4) { order: 4; }\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+5) { order: 5; }\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n+6) { order: 6; }\n.flexmasonry-cols-7 .flexmasonry-item:nth-child(7n) { order: 7; }\n\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+1) { order: 1; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+2) { order: 2; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+3) { order: 3; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+4) { order: 4; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+5) { order: 5; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+6) { order: 6; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n+7) { order: 7; }\n.flexmasonry-cols-8 .flexmasonry-item:nth-child(8n) { order: 8; }\n\n.flexmasonry-break {\n flex-basis: 100%;\n width: 0 !important;\n margin: 0;\n content: \"\";\n}\n\n.flexmasonry-break-1 { order: 1; }\n.flexmasonry-break-2 { order: 2; }\n.flexmasonry-break-3 { order: 3; }\n.flexmasonry-break-4 { order: 4; }\n.flexmasonry-break-5 { order: 5; }\n.flexmasonry-break-6 { order: 6; }\n.flexmasonry-break-7 { order: 7; }\n",".site {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.site-content {\n flex-grow: 1;\n padding: 48px 0 96px;\n}\n\n.page-template .site-content {\n padding-block: 0;\n}\n",".gh-head-menu,\n.gh-head-link {\n font-size: 1.5rem;\n font-weight: 600;\n letter-spacing: -0.009em;\n}\n",".post-feed {\n margin: 0 auto;\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.3s var(--animation-base);\n}\n\n.post-feed.initialized {\n visibility: visible;\n opacity: 1;\n}\n\n.post-feed .grid-item {\n position: absolute;\n width: 330px;\n}\n\n.post-feed .post {\n position: relative;\n margin: var(--grid-gap);\n}\n\n.post-feed .post-image {\n width: 100%;\n}\n\n@media (max-width: 640px) {\n .post-feed {\n --grid-gap: 4px;\n\n max-width: calc(100% - (calc(var(--gap) - var(--grid-gap))) * 2);\n }\n\n .post-feed .grid-item {\n width: 50%;\n }\n}\n\n@media (min-width: 641px) and (max-width: 1019px) {\n .post-feed {\n --grid-gap: 8px;\n\n max-width: calc(100% - (calc(var(--gap) - var(--grid-gap))) * 2);\n }\n\n .post-feed .grid-item {\n width: calc(100% / 3);\n }\n}\n\n@media (min-width: 1020px) {\n .post-feed {\n max-width: 990px;\n }\n}\n\n@media (min-width: 1350px) {\n .post-feed {\n max-width: 1320px;\n }\n}\n\n@media (min-width: 1680px) {\n .post-feed {\n max-width: 1650px;\n }\n}\n",".post-caption {\n display: none;\n}\n\n.post-link {\n display: block;\n}\n\n.post-link:hover {\n opacity: 1;\n}\n\n.post-lightbox {\n position: absolute;\n right: 15px;\n bottom: 15px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n line-height: 30px;\n text-align: center;\n background-color: var(--color-white);\n border-radius: 50%;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n opacity: 0;\n transition: opacity 0.2s ease, transform 0.2s ease;\n transform: scale(0.8);\n}\n\n.post-link:hover + .post-lightbox,\n.post-lightbox:hover {\n opacity: 1;\n transform: scale(1);\n}\n",".gh-article-image {\n margin: 0 0 64px;\n}\n\n.gh-article-title {\n font-size: 3.2rem;\n}\n\n.gh-article-excerpt {\n margin-top: 16px;\n font-size: 1.8rem;\n}\n\n.gh-content {\n margin-top: 28px;\n}\n",".related-posts {\n margin-top: 96px;\n}\n\n.related-title {\n margin: 0 var(--grid-gap) 24px;\n font-size: 2.4rem;\n font-weight: 600;\n}\n\n@media (max-width: 767px) {\n .related-posts {\n margin-top: 60px;\n }\n}\n",".pswp__bg {\n background: rgba(255, 255, 255, 0.9);\n}\n\n.pswp__caption__center {\n color: var(--color-darker-gray);\n}\n"]} --------------------------------------------------------------------------------