Skip to content

Support local shared CSS in root dev flow#512

Open
minimaluminium wants to merge 1 commit into
mainfrom
codex/local-shared-dev-css
Open

Support local shared CSS in root dev flow#512
minimaluminium wants to merge 1 commit into
mainfrom
codex/local-shared-dev-css

Conversation

@minimaluminium
Copy link
Copy Markdown
Member

Summary

  • resolve @tryghost/shared-theme-assets CSS imports to local packages/_shared during root yarn dev
  • keep build/zip/release paths on pinned package resolution

Testing

  • node --check gulpfile.js

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 26, 2026

Review Change Stack

Walkthrough

The PR introduces local resolution of @tryghost/shared-theme-assets imports in the build system. A new PostCSS plugin (localSharedAssetsImport) rewrites theme asset import paths to point at local files under packages/_shared. The CSS build pipeline is centralized through a cssPlugins() function that conditionally enables the new plugin before existing processors. Theme builds now accept options to enable the feature, with main() calling buildTasksForTheme() with {useLocalSharedAssets: true}, and both shared CSS build steps (sharedCSS_v1, sharedCSS_v2) using the configurable pipeline.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: enabling local shared CSS resolution in the root development flow, which matches the core objective of the pull request.
Description check ✅ Passed The description is directly related to the changeset, explaining the purpose (resolve local CSS imports during dev) and scope (keep build/release paths unchanged), along with testing approach.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/local-shared-dev-css

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@minimaluminium minimaluminium force-pushed the codex/local-shared-dev-css branch from f4b2ff1 to 95f7e81 Compare May 26, 2026 04:51
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/episode/assets/built/screen.css`:
- Line 1: The share controls lost their full styling during the build—restore
the missing share UI stylesheet (the CSS that defines .gh-button-share and
related share-control rules) so .gh-button-share and any share-related classes
regain their visual/interactive styles, or if the share markup was intentionally
removed, delete the .gh-button-share usage from templates/components instead;
look for references to .gh-button-share and the share controls in the built CSS
and the corresponding share markup to either re-import the original share
stylesheet or remove the classes/markup consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b0dfcdc7-f68e-4d53-9bfa-be01089a14a2

📥 Commits

Reviewing files that changed from the base of the PR and between 8ffe3c5 and f4b2ff1.

⛔ Files ignored due to path filters (16)
  • packages/alto/assets/built/screen.css.map is excluded by !**/*.map
  • packages/bulletin/assets/built/screen.css.map is excluded by !**/*.map
  • packages/dawn/assets/built/screen.css.map is excluded by !**/*.map
  • packages/digest/assets/built/screen.css.map is excluded by !**/*.map
  • packages/dope/assets/built/screen.css.map is excluded by !**/*.map
  • packages/ease/assets/built/screen.css.map is excluded by !**/*.map
  • packages/edge/assets/built/screen.css.map is excluded by !**/*.map
  • packages/edition/assets/built/screen.css.map is excluded by !**/*.map
  • packages/episode/assets/built/screen.css.map is excluded by !**/*.map
  • packages/headline/assets/built/screen.css.map is excluded by !**/*.map
  • packages/journal/assets/built/screen.css.map is excluded by !**/*.map
  • packages/london/assets/built/screen.css.map is excluded by !**/*.map
  • packages/ruby/assets/built/screen.css.map is excluded by !**/*.map
  • packages/solo/assets/built/screen.css.map is excluded by !**/*.map
  • packages/taste/assets/built/screen.css.map is excluded by !**/*.map
  • packages/wave/assets/built/screen.css.map is excluded by !**/*.map
📒 Files selected for processing (17)
  • gulpfile.js
  • packages/alto/assets/built/screen.css
  • packages/bulletin/assets/built/screen.css
  • packages/dawn/assets/built/screen.css
  • packages/digest/assets/built/screen.css
  • packages/dope/assets/built/screen.css
  • packages/ease/assets/built/screen.css
  • packages/edge/assets/built/screen.css
  • packages/edition/assets/built/screen.css
  • packages/episode/assets/built/screen.css
  • packages/headline/assets/built/screen.css
  • packages/journal/assets/built/screen.css
  • packages/london/assets/built/screen.css
  • packages/ruby/assets/built/screen.css
  • packages/solo/assets/built/screen.css
  • packages/taste/assets/built/screen.css
  • packages/wave/assets/built/screen.css

@@ -1 +1 @@
*,: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}}:root{--color-primary-text:var(--color-darker-gray);--color-secondary-text-dark:rgba(0,0,0,.4);--color-secondary-text-light:hsla(0,0%,100%,.64);--color-secondary-text:var(--color-secondary-text-dark);--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;--color-border:rgba(0,0,0,.08);--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;--gap:clamp(2rem,1.82vw + 1.27rem,3.6rem);--head-nav-gap:28px;--header-spacing:80px}:root.has-light-text{--color-secondary-text:var(--color-secondary-text-light);--color-lighter-gray:rgba(0,0,0,.1);--color-darker-gray:#fff;--color-border:hsla(0,0%,100%,.2)}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}sub,sup{line-height:1}:is(h1,h2,h3,h4,h5,h6){color:var(--color-darker-gray);font-family:var(--gh-font-heading,var(--font-sans));letter-spacing:-.01em;line-height:1.2}.gh-site{display:flex;flex-direction:column;min-height:100vh}.gh-main{flex-grow:1}.gh-outer{padding-left:var(--gap);padding-right:var(--gap)}.gh-outer .gh-outer{padding-left:0;padding-right:0}.gh-inner{margin:0 auto;max-width:var(--container-width,1200px);width:100%}.gh-inner .gh-inner{margin:unset;max-width:unset}.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%}.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(--color-darker-gray);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(--color-darker-gray);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}.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}.gh-article{padding-top:80px}.page-template .gh-article{padding-top:0}.page-template .gh-article-header{margin-top:var(--header-spacing,80px)}.gh-article-meta{display:flex;flex-wrap:wrap;font-size:calc(1.5rem*var(--font-multiplier, 1));gap:8px}.gh-article-meta:not(:empty){margin-bottom:12px}.gh-article-meta>*{align-items:center;display:flex;gap:8px}.gh-article-meta>*+:before{background-color:currentColor;border-radius:50%;content:"";height:2px;width:2px}.gh-article-title{font-size:calc(clamp(3.2rem, 1.59vw + 2.56rem, 4.6rem)*var(--font-multiplier, 1));line-height:1.15;word-break:break-word}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-article-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-article-excerpt{font-size:calc(1.8rem*var(--font-multiplier, 1));margin-top:24px}.is-font-serif: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{margin:64px 0 16px}.gh-article-image img{width:100%}.gh-article-comments{margin-bottom:-24px;margin-top:64px}.gh-article-comments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:48px}.gh-article-comments-title{font-size:calc(2.6rem*var(--font-multiplier, 1))}.gh-article-comments .gh-article-comments-title{margin-bottom:48px}.gh-article-comments-header .gh-article-comments-title{margin-bottom:0}.gh-article-comments-count{color:var(--color-secondary-text)}.gh-meta-share{align-items:center;display:flex;justify-content:space-between}.gh-button-share{align-items:center;background:transparent;border:1px solid rgba(0,0,0,.15);border-radius:999px;color:rgba(0,0,0,.85);cursor:pointer;display:inline-flex;font-size:1.5rem;font-weight:600;gap:6px;padding:.5em 1.2em;text-decoration:none;transition:all .4s ease;white-space:nowrap}.gh-button-share:hover{border-color:rgba(0,0,0,.5);opacity:1}.gh-button-share svg{height:20px;margin-right:-4px;margin-top:-2px;width:20px}:is(.dark-mode,.theme-dark,.has-light-text) .gh-button-share{border-color:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.85)}:is(.dark-mode,.theme-dark,.has-light-text) .gh-button-share:hover{border-color:hsla(0,0%,100%,.5)}.gh-content{font-size:calc(var(--content-font-size, 1.8rem)*var(--font-multiplier, 1));letter-spacing:var(--content-letter-spacing,0);margin-top:48px;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}.is-font-serif: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(1em*var(--content-spacing-multiplier, 1))}.gh-content>.kg-product-card,.gh-content>blockquote,.gh-content>hr,.gh-content>iframe{margin-top:calc(3.2em*var(--content-spacing-multiplier, 1))!important;position:relative}.gh-content>.kg-product-card+*,.gh-content>blockquote+*,.gh-content>hr+*,.gh-content>iframe+*{margin-top:calc(3.2em*var(--content-spacing-multiplier, 1))!important}.gh-content h2{font-size:calc(1.8em*var(--font-multiplier, 1))}.gh-content h3{font-size:calc(1.2em*var(--font-multiplier, 1))}.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}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-callout-text,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ol,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>p,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ul,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>blockquote,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>dl,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ol,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>p,.is-font-serif: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 hr{background-color:var(--color-light-gray);border:0;height:1px;width:100%}.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-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 :not(.kg-card):not([id])+.kg-card:is(.kg-width-wide,.kg-width-full){margin-top:calc(4em*var(--content-spacing-multiplier, 1))}.gh-content .kg-card:is(.kg-width-wide,.kg-width-full)+:not(.kg-card):not([id]){margin-top:calc(4em*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:not([class]){border-left:4px solid var(--ghost-accent-color);padding-left:2rem}blockquote.kg-blockquote-alt{color:var(--color-secondary-text);font-style:normal;font-weight:400}.kg-card.kg-button-card .kg-btn{font-size:1em}.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}.kg-product-card.kg-card .kg-product-card-image{margin-bottom:12px}.kg-product-card.kg-card a.kg-product-card-button{height:2.8em;margin-top:12px}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-product-card.kg-card .kg-product-card-title{font-family:var(--gh-font-heading,var(--font-serif))}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-product-card.kg-card .kg-product-card-button,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-product-card.kg-card .kg-product-card-description :is(p,ul,ol){font-family:var(--gh-font-body,var(--font-serif))}.kg-file-card.kg-card .kg-file-card-container{padding:.6em}.kg-file-card.kg-card .kg-file-card-contents{margin:4px 8px 6px}.kg-file-card.kg-card .kg-file-card-metadata{font-size:.9em}.kg-file-card.kg-card .kg-file-card-filesize:before{margin-left:6px;margin-right:6px}.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)}figcaption{font-size:calc(1.4rem*var(--font-multiplier, 1));margin-top:12px;text-align:center}.kg-card.kg-width-full figcaption{padding:0 16px}figcaption a{color:var(--ghost-accent-color);text-decoration:underline}.gh-archive{margin-bottom:80px;margin-top:80px}.gh-archive-inner{display:grid;gap:48px;grid-template-columns:1fr 1fr}.gh-archive-header{display:flex;flex-direction:column;gap:12px}.gh-archive-title{font-size:calc(3.6rem*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-archive-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-archive-description{font-size:calc(1.7rem*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-archive-description{font-family:var(--gh-font-body,var(--font-serif))}.author-template .gh-archive-image{margin-bottom:8px;width:88px}.author-template .gh-archive-image img{border-radius:50%}.gh-archive-meta{display:flex;flex-direction:column;font-size:1.5rem;gap:4px;margin-top:8px}.gh-archive-social{align-items:center;display:flex;gap:8px}.gh-archive-social a[href*=bluesky],.gh-archive-social a[href*=facebook],.gh-archive-social a[href*=instagram],.gh-archive-social a[href*=linkedin],.gh-archive-social a[href*=mastodon],.gh-archive-social a[href*=threads],.gh-archive-social a[href*=tiktok],.gh-archive-social a[href*=twitter],.gh-archive-social a[href*=youtube]{font-size:0}@media (max-width:767px){.gh-archive-inner{grid-template-columns:1fr}}.gh-head{height:100px}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-head{font-family:var(--gh-font-heading,var(--font-serif))}.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:calc(2.6rem*var(--font-multiplier, 1));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-link,.gh-head-menu{font-size:calc(1.6rem*var(--font-multiplier, 1));font-weight:500}.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-family:var(--font-sans);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}.gh-head: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 (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-border);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-description,.is-head-transparent .gh-head-link,.is-head-transparent .gh-head-logo,.is-head-transparent .gh-search,.is-head-transparent .gh-social,.is-head-transparent .nav-more-toggle,.is-head-transparent.gh-head .nav>li a{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-dark:not(.is-head-transparent).gh-head{background-color:var(--color-darker-gray)}.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-search,.is-head-dark:not(.is-head-transparent) .gh-social,.is-head-dark:not(.is-head-transparent) .nav-more-toggle,.is-head-dark:not(.is-head-transparent).gh-head .nav a{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-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-search,.is-head-brand:not(.is-head-transparent) .gh-social,.is-head-brand:not(.is-head-transparent) .nav-more-toggle,.is-head-brand:not(.is-head-transparent).gh-head .nav a{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-header{display:flex;flex-direction:column;justify-content:center;padding-bottom:clamp(8rem,13.64vw + 2.55rem,20rem);padding-top:clamp(8rem,13.64vw + 2.55rem,20rem)}.gh-header:not(.has-background-image):not(.has-background-color){border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);margin:0 auto 40px;max-width:var(--container-width,1200px)}.gh-header-content{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:920px;text-align:center}.gh-header-primary{font-size:calc(clamp(3rem, 2.05vw + 3rem, 6rem)*var(--font-multiplier, 1));line-height:1.2}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-header-primary{font-family:var(--gh-font-heading,var(--font-serif));line-height:1.1}.gh-header-secondary{font-size:calc(2.4rem*var(--font-multiplier, 1))}.gh-header-primary+.gh-header-secondary{margin-top:20px}.gh-header-action{margin-top:40px}.gh-header-button{--multiplier:1.2;font-size:2rem}.gh-header-input{align-items:center;background-color:var(--color-border);border:0;border-radius:48px;color:var(--color-secondary-text);cursor:pointer;display:flex;height:56px;justify-content:space-between;max-width:480px;padding:0 4px 0 20px;width:100%}.gh-header-image+.gh-header-content .gh-header-input{background-color:#fff;color:var(--color-secondary-text-dark)}.gh-header-input span{align-items:center;background-color:var(--ghost-accent-color);border-radius:32px;color:#fff;display:flex;font-weight:600;height:calc(100% - 8px);justify-content:center;padding:0 24px}.gh-header-input[data-ghost-search] span{aspect-ratio:1;background-color:transparent;color:var(--color-darker-gray);padding:0}.gh-header[class*=has-background]{margin-bottom:80px;position:relative}.gh-header[class*=has-background] .gh-header-content{position:relative;z-index:20}.gh-header[class*=has-background] :is(.gh-header-primary,.gh-header-secondary){color:#fff}.gh-header[class*=has-background] .gh-header-input{border:0}.gh-header[class*=has-background] .gh-header-button{background-color:#fff;color:#15171a}.gh-header.has-background-image:before{background-color:#15171a;content:"";inset:0;opacity:.5;position:absolute;z-index:10}.gh-header.has-background-image .gh-header-image{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.gh-header.has-background-color{background-color:var(--ghost-accent-color)}.gh-header.is-side{padding-bottom:120px;padding-top:80px}.gh-header.is-side .gh-header-inner{display:grid;gap:48px;grid-template-columns:1fr 1fr}.gh-header.is-side .gh-header-image{position:static}.gh-header.is-side .gh-header-content{align-items:flex-start;padding-left:32px;text-align:left}.gh-list+.gh-list{margin-top:clamp(10rem,11.36vw + 3.45rem,16rem)}.gh-list-inner{display:flex;flex-direction:column;gap:40px}.gh-list-header{align-items:flex-end;display:flex;gap:8px;justify-content:space-between}.gh-list-title{font-size:calc(2.7rem*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-list-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-list-item-inner{display:flex;flex-direction:column;gap:20px}.gh-list-item-inner:hover{opacity:1}.gh-list-item-title{font-size:calc(2rem*var(--font-multiplier, 1));font-weight:700;letter-spacing:-.005em;line-height:1.25;word-break:break-word}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-list-item-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-list-item-excerpt{font-size:calc(1.5rem*var(--font-multiplier, 1));margin-bottom:12px;margin-top:16px;word-break:break-word}.gh-list-item-primary-author,.gh-list-item-primary-tag,.gh-list-item-published-at,.gh-list-item-reading-time{display:inline-block;font-size:calc(1.35rem*var(--font-multiplier, 1));line-height:1.1}.gh-list-item-primary-author,.gh-list-item-published-at{font-weight:500}.gh-list-item-primary-author:before,.gh-list-item-published-at:before,.gh-list-item-reading-time:before{display:inline-block;margin-right:.35em}.gh-list-item-primary-tag{display:inline-block;font-weight:600;margin-bottom:10px}.gh-list-item-primary-author:before{content:"by";font-weight:300}.gh-list-item-published-at:before{content:"on";font-weight:300}.gh-list-item-primary-author+.gh-list-item-reading-time:before,.gh-list-item-published-at+.gh-list-item-reading-time:before{content:"•"}.gh-list-item-image{aspect-ratio:16/10;position:relative;width:100%}.gh-list-item-image img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.gh-list.grid .gh-list-feed{display:grid;gap:64px 48px;grid-template-columns:repeat(4,1fr)}.gh-list.grid:not(.magazine)[data-column="2"] .gh-list-feed{grid-template-columns:repeat(2,1fr)}.gh-list.grid:not(.magazine)[data-column="2"] .gh-list-item-title{font-size:2.6rem}.gh-list.grid:not(.magazine)[data-column="3"] .gh-list-feed{grid-template-columns:repeat(3,1fr)}.gh-list.grid.magazine .gh-list-item:first-child{grid-column:1/-1}.gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-inner{display:grid;gap:48px;grid-template-columns:1fr 1fr}.gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-title{font-size:calc(clamp(3rem, 1.36vw + 2.45rem, 4.2rem)*var(--font-multiplier, 1));line-height:1.1}.gh-list.simple .gh-list-feed{display:flex;flex-direction:column;gap:clamp(3.2rem,3.64vw + 1.75rem,6.4rem)}.gh-list.simple .gh-list-item-inner{align-items:center;flex-direction:row;gap:48px}.gh-list.simple .gh-list-item-inner>*{flex:1}.gh-list.simple .gh-list-item-title{font-size:calc(3.2rem*var(--font-multiplier, 1))}@media (max-width:767px){.gh-list.grid .gh-list-feed{display:flex;flex-direction:column}.gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-inner{display:flex}.gh-list.simple .gh-list-item-inner{flex-direction:column}}@media (min-width:768px){.gh-list.grid .gh-list-feed{grid-template-columns:repeat(2,1fr)}}@media (min-width:992px){.gh-list.grid .gh-list-feed{grid-template-columns:repeat(3,1fr)}}@media (min-width:1200px){.gh-list.grid .gh-list-feed{grid-template-columns:repeat(4,1fr)}}.gh-cta{margin-top:clamp(10rem,11.36vw + 3.45rem,16rem)}.gh-cta-inner{align-items:center;display:flex;flex-direction:column;padding-bottom:clamp(4.8rem,3.64vw + 3.35rem,8rem);padding-top:clamp(4.8rem,3.64vw + 3.35rem,8rem);text-align:center}.gh-cta-title{font-size:calc(clamp(2.4rem, 1.36vw + 1.85rem, 3.6rem)*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-cta-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-cta-input{align-items:center;background-color:var(--color-border);border:0;border-radius:32px;color:var(--color-secondary-text);cursor:pointer;display:flex;height:52px;justify-content:space-between;line-height:1;max-width:480px;padding:0 4px 0 20px;width:100%}.gh-cta-title+.gh-cta-input{margin-top:32px}.gh-cta-input span{align-items:center;background-color:var(--ghost-accent-color);border-radius:32px;color:#fff;display:flex;font-weight:600;height:calc(100% - 8px);justify-content:center;line-height:1;padding:0 16px}.gh-foot{font-size:calc(1.6rem*var(--font-multiplier, 1));padding-bottom:120px;padding-top:120px;text-align:center}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-foot{font-family:var(--gh-font-body,var(--font-serif))}.gh-foot-inner{display:grid;gap:32px;justify-content:center}.gh-foot .nav{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:center;list-style-type:none;margin:0;padding:0}.gh-copyright,.gh-copyright a{color:var(--color-secondary-text)}.gh-copyright a{text-decoration:underline}@font-face{font-family:Mona Sans;font-stretch:80% 125%;font-weight:200 900;src:url(/assets/fonts/Mona-Sans.woff2) format("woff2 supports variations"),url(/assets/fonts/Mona-Sans.woff2) format("woff2-variations")}:root{--font-sans:"Mona Sans",sans-serif}body{background-color:var(--background-color);font-variation-settings:"wdth" 110}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]){font-variation-settings:"wdth" 100}.gh-inner{--container-width:960px}:is(h1,h2,h3,h4,h5,h6){font-variation-settings:"wdth" 125;font-weight:800}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) :is(h1,h2,h3,h4,h5,h6){font-variation-settings:"wdth" 80;font-weight:600}.gh-btn{--multiplier:1.2;border-radius:0}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-btn{--multiplier:0.85;font-size:1.9rem;font-variation-settings:"wdth" 80}.gh-head-logo{margin-top:-3px}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-head-logo{font-size:2.8rem;font-variation-settings:"wdth" 80}@media (max-width:767px){#gh-head a:not(.gh-primary-btn),#gh-head.is-head-open .gh-search{color:var(--color-black)}#gh-head.is-head-open .gh-burger:after,#gh-head.is-head-open .gh-burger:before{background-color:var(--color-black)}}.gh-header{border:0!important;justify-content:flex-end;margin-bottom:0!important}.gh-header.has-background-image{min-height:var(--header-height,calc(100vh - var(--services-height, 177px)));padding-bottom:clamp(3.2rem,3.64vw + 1.75rem,6.4rem)}.gh-header.has-background-image:before{background:linear-gradient(180deg,rgba(0,0,0,.6),transparent,rgba(0,0,0,.6));opacity:1}.gh-header-inner{max-width:unset;padding:0 5vw}.gh-header-inner .gh-header-secondary{max-width:840px}.gh-header-content{max-width:unset;word-break:break-word}.gh-header-primary{font-size:calc(clamp(3rem, 5.4vh + 1.2rem, 7.2rem)*var(--font-multiplier, 1));line-height:1.1}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-header-primary{--font-multiplier:1.3;font-weight:600;letter-spacing:-.02em;line-height:1.05}@media (max-width:767px){.gh-header.has-background-image{aspect-ratio:1;min-height:unset}.gh-header-primary{font-size:calc(2.8rem*var(--font-multiplier, 1))}.gh-header-secondary{--font-multiplier:0.65}.gh-header-primary+.gh-header-secondary{margin-top:12px}.gh-archive-title{font-size:calc(2.2rem*var(--font-multiplier, 1))}}.gh-podcast-service-list{background-color:#15171a;display:flex;gap:64px;justify-content:center;padding:64px 0}.gh-podcast-service-list a{color:#fff;-moz-column-gap:16px;column-gap:16px;display:grid;font-weight:500;grid-template-columns:48px auto;grid-template-rows:auto auto}.gh-podcast-service-list svg{grid-row:-1/1;height:48px;width:48px}.gh-podcast-service-list svg+span{font-size:1.2rem;margin-top:2px}.gh-podcast-service-list span+span{font-size:1.8rem;font-weight:600}@media (max-width:767px){.gh-podcast-service-list{gap:40px;padding:32px 0}.gh-podcast-service-list a{display:block;font-size:0}.gh-podcast-service-list svg{height:40px;width:40px}.gh-podcast-service-list span{display:none}}.gh-list-item-inner{border:4px solid var(--color-darker-gray);gap:40px!important;padding:24px}.has-light-text .gh-list-item-inner{border-color:hsla(0,0%,100%,.3)}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-list-item-inner{border-width:2px}.gh-list-item-image{aspect-ratio:1;flex:unset!important;width:260px}.gh-list-item-content{display:flex;flex-direction:column;padding-bottom:64px;position:relative}.gh-list-item-published-at{margin-bottom:12px;order:-1}.gh-list-item-published-at:before{display:none}.gh-list-item-title{--font-multiplier:0.9;font-weight:800}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-list-item-title{--font-multiplier:1.3;font-weight:650;line-height:1.05}.gh-list-item-excerpt{display:-webkit-box;font-weight:500;-webkit-line-clamp:2;margin-top:10px;overflow-y:hidden;-webkit-box-orient:vertical}.gh-list-item-content:before{content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' style='margin-top:3px' viewBox='0 0 32 32'%3E%3Cpath d='M10.667 6.853V25.52l14.667-9.333-14.667-9.333z'/%3E%3C/svg%3E");font-size:0;left:16px;position:absolute;top:calc(100% - 40px);z-index:10}.gh-list-item-content:after{align-items:center;background-color:var(--ghost-accent-color);color:#fff;content:"View episode";display:flex;font-weight:600;height:48px;line-height:1;padding:0 24px 0 44px;position:absolute;top:calc(100% - 48px)}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-list-item-content:after{font-size:1.8rem;font-variation-settings:"wdth" 80}.gh-more{font-size:2.4rem;font-weight:700;margin-top:48px}@media (max-width:767px){.gh-list-item-image{width:100%}}.gh-cta-inner{border-bottom:4px solid var(--color-darker-gray);border-top:4px solid var(--color-darker-gray);padding-left:clamp(0rem,7.27vw + -2.91rem,6.4rem);padding-right:clamp(0rem,7.27vw + -2.91rem,6.4rem)}.has-light-text .gh-cta-inner{border-color:hsla(0,0%,100%,.3)}.gh-cta-title{--font-multiplier:1.3}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-cta-title{--font-multiplier:1.6;font-weight:600}.gh-cta-input{border-radius:0;height:60px;padding-right:0}.gh-cta-input span{border-radius:0;height:100%;padding:0 24px}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-cta-input span{font-size:1.8rem;font-variation-settings:"wdth" 80}.gh-archive{margin-bottom:48px}.gh-podcast-service-list+.gh-archive{margin-top:clamp(6.4rem,4.09vw + 4.76rem,10rem)}.gh-meta-share{margin-top:24px}.gh-button-share{font-size:1.6rem}/*# sourceMappingURL=screen.css.map */
*,: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}}:root{--color-primary-text:var(--color-darker-gray);--color-secondary-text-dark:rgba(0,0,0,.4);--color-secondary-text-light:hsla(0,0%,100%,.64);--color-secondary-text:var(--color-secondary-text-dark);--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;--color-border:rgba(0,0,0,.08);--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;--gap:clamp(2rem,1.82vw + 1.27rem,3.6rem);--head-nav-gap:28px;--header-spacing:80px}:root.has-light-text{--color-secondary-text:var(--color-secondary-text-light);--color-lighter-gray:rgba(0,0,0,.1);--color-darker-gray:#fff;--color-border:hsla(0,0%,100%,.2)}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}sub,sup{line-height:1}:is(h1,h2,h3,h4,h5,h6){color:var(--color-darker-gray);font-family:var(--gh-font-heading,var(--font-sans));letter-spacing:-.01em;line-height:1.2}.gh-site{display:flex;flex-direction:column;min-height:100vh}.gh-main{flex-grow:1}.gh-outer{padding-left:var(--gap);padding-right:var(--gap)}.gh-outer .gh-outer{padding-left:0;padding-right:0}.gh-inner{margin:0 auto;max-width:var(--container-width,1200px);width:100%}.gh-inner .gh-inner{margin:unset;max-width:unset}.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%}.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(--color-darker-gray);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(--color-darker-gray);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}.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}.gh-article{padding-top:80px}.page-template .gh-article{padding-top:0}.page-template .gh-article-header{margin-top:var(--header-spacing,80px)}.gh-article-meta{display:flex;flex-wrap:wrap;font-size:calc(1.5rem*var(--font-multiplier, 1));gap:8px}.gh-article-meta:not(:empty){margin-bottom:12px}.gh-article-meta>*{align-items:center;display:flex;gap:8px}.gh-article-meta>*+:before{background-color:currentColor;border-radius:50%;content:"";height:2px;width:2px}.gh-article-title{font-size:calc(clamp(3.2rem, 1.59vw + 2.56rem, 4.6rem)*var(--font-multiplier, 1));line-height:1.15;word-break:break-word}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-article-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-article-excerpt{font-size:calc(1.8rem*var(--font-multiplier, 1));margin-top:24px}.is-font-serif: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{margin:64px 0 16px}.gh-article-image img{width:100%}.gh-article-comments{margin-bottom:-24px;margin-top:64px}.gh-article-comments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:48px}.gh-article-comments-title{font-size:calc(2.6rem*var(--font-multiplier, 1))}.gh-article-comments .gh-article-comments-title{margin-bottom:48px}.gh-article-comments-header .gh-article-comments-title{margin-bottom:0}.gh-article-comments-count{color:var(--color-secondary-text)}.gh-content{font-size:calc(var(--content-font-size, 1.8rem)*var(--font-multiplier, 1));letter-spacing:var(--content-letter-spacing,0);margin-top:48px;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}.is-font-serif: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(1em*var(--content-spacing-multiplier, 1))}.gh-content>.kg-product-card,.gh-content>blockquote,.gh-content>hr,.gh-content>iframe{margin-top:calc(3.2em*var(--content-spacing-multiplier, 1))!important;position:relative}.gh-content>.kg-product-card+*,.gh-content>blockquote+*,.gh-content>hr+*,.gh-content>iframe+*{margin-top:calc(3.2em*var(--content-spacing-multiplier, 1))!important}.gh-content h2{font-size:calc(1.8em*var(--font-multiplier, 1))}.gh-content h3{font-size:calc(1.2em*var(--font-multiplier, 1))}.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}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-callout-text,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ol,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>p,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ul,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>blockquote,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>dl,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ol,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>p,.is-font-serif: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 hr{background-color:var(--color-light-gray);border:0;height:1px;width:100%}.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-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 :not(.kg-card):not([id])+.kg-card:is(.kg-width-wide,.kg-width-full){margin-top:calc(4em*var(--content-spacing-multiplier, 1))}.gh-content .kg-card:is(.kg-width-wide,.kg-width-full)+:not(.kg-card):not([id]){margin-top:calc(4em*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:not([class]){border-left:4px solid var(--ghost-accent-color);padding-left:2rem}blockquote.kg-blockquote-alt{color:var(--color-secondary-text);font-style:normal;font-weight:400}.kg-card.kg-button-card .kg-btn{font-size:1em}.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}.kg-product-card.kg-card .kg-product-card-image{margin-bottom:12px}.kg-product-card.kg-card a.kg-product-card-button{height:2.8em;margin-top:12px}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-product-card.kg-card .kg-product-card-title{font-family:var(--gh-font-heading,var(--font-serif))}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-product-card.kg-card .kg-product-card-button,.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-product-card.kg-card .kg-product-card-description :is(p,ul,ol){font-family:var(--gh-font-body,var(--font-serif))}.kg-file-card.kg-card .kg-file-card-container{padding:.6em}.kg-file-card.kg-card .kg-file-card-contents{margin:4px 8px 6px}.kg-file-card.kg-card .kg-file-card-metadata{font-size:.9em}.kg-file-card.kg-card .kg-file-card-filesize:before{margin-left:6px;margin-right:6px}.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)}figcaption{font-size:calc(1.4rem*var(--font-multiplier, 1));margin-top:12px;text-align:center}.kg-card.kg-width-full figcaption{padding:0 16px}figcaption a{color:var(--ghost-accent-color);text-decoration:underline}.gh-archive{margin-bottom:80px;margin-top:80px}.gh-archive-inner{display:grid;gap:48px;grid-template-columns:1fr 1fr}.gh-archive-header{display:flex;flex-direction:column;gap:12px}.gh-archive-title{font-size:calc(3.6rem*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-archive-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-archive-description{font-size:calc(1.7rem*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-archive-description{font-family:var(--gh-font-body,var(--font-serif))}.author-template .gh-archive-image{margin-bottom:8px;width:88px}.author-template .gh-archive-image img{border-radius:50%}.gh-archive-meta{display:flex;flex-direction:column;font-size:1.5rem;gap:4px;margin-top:8px}.gh-archive-social{align-items:center;display:flex;gap:8px}.gh-archive-social a[href*=bluesky],.gh-archive-social a[href*=facebook],.gh-archive-social a[href*=instagram],.gh-archive-social a[href*=linkedin],.gh-archive-social a[href*=mastodon],.gh-archive-social a[href*=threads],.gh-archive-social a[href*=tiktok],.gh-archive-social a[href*=twitter],.gh-archive-social a[href*=youtube]{font-size:0}@media (max-width:767px){.gh-archive-inner{grid-template-columns:1fr}}.gh-head{height:100px}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-head{font-family:var(--gh-font-heading,var(--font-serif))}.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:calc(2.6rem*var(--font-multiplier, 1));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-link,.gh-head-menu{font-size:calc(1.6rem*var(--font-multiplier, 1));font-weight:500}.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-family:var(--font-sans);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}.gh-head: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 (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-border);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-description,.is-head-transparent .gh-head-link,.is-head-transparent .gh-head-logo,.is-head-transparent .gh-search,.is-head-transparent .gh-social,.is-head-transparent .nav-more-toggle,.is-head-transparent.gh-head .nav>li a{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-dark:not(.is-head-transparent).gh-head{background-color:var(--color-darker-gray)}.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-search,.is-head-dark:not(.is-head-transparent) .gh-social,.is-head-dark:not(.is-head-transparent) .nav-more-toggle,.is-head-dark:not(.is-head-transparent).gh-head .nav a{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-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-search,.is-head-brand:not(.is-head-transparent) .gh-social,.is-head-brand:not(.is-head-transparent) .nav-more-toggle,.is-head-brand:not(.is-head-transparent).gh-head .nav a{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-header{display:flex;flex-direction:column;justify-content:center;padding-bottom:clamp(8rem,13.64vw + 2.55rem,20rem);padding-top:clamp(8rem,13.64vw + 2.55rem,20rem)}.gh-header:not(.has-background-image):not(.has-background-color){border-bottom:1px solid var(--color-border);border-top:1px solid var(--color-border);margin:0 auto 40px;max-width:var(--container-width,1200px)}.gh-header-content{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:920px;text-align:center}.gh-header-primary{font-size:calc(clamp(3rem, 2.05vw + 3rem, 6rem)*var(--font-multiplier, 1));line-height:1.2}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-header-primary{font-family:var(--gh-font-heading,var(--font-serif));line-height:1.1}.gh-header-secondary{font-size:calc(2.4rem*var(--font-multiplier, 1))}.gh-header-primary+.gh-header-secondary{margin-top:20px}.gh-header-action{margin-top:40px}.gh-header-button{--multiplier:1.2;font-size:2rem}.gh-header-input{align-items:center;background-color:var(--color-border);border:0;border-radius:48px;color:var(--color-secondary-text);cursor:pointer;display:flex;height:56px;justify-content:space-between;max-width:480px;padding:0 4px 0 20px;width:100%}.gh-header-image+.gh-header-content .gh-header-input{background-color:#fff;color:var(--color-secondary-text-dark)}.gh-header-input span{align-items:center;background-color:var(--ghost-accent-color);border-radius:32px;color:#fff;display:flex;font-weight:600;height:calc(100% - 8px);justify-content:center;padding:0 24px}.gh-header-input[data-ghost-search] span{aspect-ratio:1;background-color:transparent;color:var(--color-darker-gray);padding:0}.gh-header[class*=has-background]{margin-bottom:80px;position:relative}.gh-header[class*=has-background] .gh-header-content{position:relative;z-index:20}.gh-header[class*=has-background] :is(.gh-header-primary,.gh-header-secondary){color:#fff}.gh-header[class*=has-background] .gh-header-input{border:0}.gh-header[class*=has-background] .gh-header-button{background-color:#fff;color:#15171a}.gh-header.has-background-image:before{background-color:#15171a;content:"";inset:0;opacity:.5;position:absolute;z-index:10}.gh-header.has-background-image .gh-header-image{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.gh-header.has-background-color{background-color:var(--ghost-accent-color)}.gh-header.is-side{padding-bottom:120px;padding-top:80px}.gh-header.is-side .gh-header-inner{display:grid;gap:48px;grid-template-columns:1fr 1fr}.gh-header.is-side .gh-header-image{position:static}.gh-header.is-side .gh-header-content{align-items:flex-start;padding-left:32px;text-align:left}.gh-list+.gh-list{margin-top:clamp(10rem,11.36vw + 3.45rem,16rem)}.gh-list-inner{display:flex;flex-direction:column;gap:40px}.gh-list-header{align-items:flex-end;display:flex;gap:8px;justify-content:space-between}.gh-list-title{font-size:calc(2.7rem*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-list-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-list-item-inner{display:flex;flex-direction:column;gap:20px}.gh-list-item-inner:hover{opacity:1}.gh-list-item-title{font-size:calc(2rem*var(--font-multiplier, 1));font-weight:700;letter-spacing:-.005em;line-height:1.25;word-break:break-word}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-list-item-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-list-item-excerpt{font-size:calc(1.5rem*var(--font-multiplier, 1));margin-bottom:12px;margin-top:16px;word-break:break-word}.gh-list-item-primary-author,.gh-list-item-primary-tag,.gh-list-item-published-at,.gh-list-item-reading-time{display:inline-block;font-size:calc(1.35rem*var(--font-multiplier, 1));line-height:1.1}.gh-list-item-primary-author,.gh-list-item-published-at{font-weight:500}.gh-list-item-primary-author:before,.gh-list-item-published-at:before,.gh-list-item-reading-time:before{display:inline-block;margin-right:.35em}.gh-list-item-primary-tag{display:inline-block;font-weight:600;margin-bottom:10px}.gh-list-item-primary-author:before{content:"by";font-weight:300}.gh-list-item-published-at:before{content:"on";font-weight:300}.gh-list-item-primary-author+.gh-list-item-reading-time:before,.gh-list-item-published-at+.gh-list-item-reading-time:before{content:"•"}.gh-list-item-image{aspect-ratio:16/10;position:relative;width:100%}.gh-list-item-image img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.gh-list.grid .gh-list-feed{display:grid;gap:64px 48px;grid-template-columns:repeat(4,1fr)}.gh-list.grid:not(.magazine)[data-column="2"] .gh-list-feed{grid-template-columns:repeat(2,1fr)}.gh-list.grid:not(.magazine)[data-column="2"] .gh-list-item-title{font-size:2.6rem}.gh-list.grid:not(.magazine)[data-column="3"] .gh-list-feed{grid-template-columns:repeat(3,1fr)}.gh-list.grid.magazine .gh-list-item:first-child{grid-column:1/-1}.gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-inner{display:grid;gap:48px;grid-template-columns:1fr 1fr}.gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-title{font-size:calc(clamp(3rem, 1.36vw + 2.45rem, 4.2rem)*var(--font-multiplier, 1));line-height:1.1}.gh-list.simple .gh-list-feed{display:flex;flex-direction:column;gap:clamp(3.2rem,3.64vw + 1.75rem,6.4rem)}.gh-list.simple .gh-list-item-inner{align-items:center;flex-direction:row;gap:48px}.gh-list.simple .gh-list-item-inner>*{flex:1}.gh-list.simple .gh-list-item-title{font-size:calc(3.2rem*var(--font-multiplier, 1))}@media (max-width:767px){.gh-list.grid .gh-list-feed{display:flex;flex-direction:column}.gh-list.grid.magazine .gh-list-item:first-child .gh-list-item-inner{display:flex}.gh-list.simple .gh-list-item-inner{flex-direction:column}}@media (min-width:768px){.gh-list.grid .gh-list-feed{grid-template-columns:repeat(2,1fr)}}@media (min-width:992px){.gh-list.grid .gh-list-feed{grid-template-columns:repeat(3,1fr)}}@media (min-width:1200px){.gh-list.grid .gh-list-feed{grid-template-columns:repeat(4,1fr)}}.gh-cta{margin-top:clamp(10rem,11.36vw + 3.45rem,16rem)}.gh-cta-inner{align-items:center;display:flex;flex-direction:column;padding-bottom:clamp(4.8rem,3.64vw + 3.35rem,8rem);padding-top:clamp(4.8rem,3.64vw + 3.35rem,8rem);text-align:center}.gh-cta-title{font-size:calc(clamp(2.4rem, 1.36vw + 1.85rem, 3.6rem)*var(--font-multiplier, 1))}.is-font-serif:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-cta-title{font-family:var(--gh-font-heading,var(--font-serif))}.gh-cta-input{align-items:center;background-color:var(--color-border);border:0;border-radius:32px;color:var(--color-secondary-text);cursor:pointer;display:flex;height:52px;justify-content:space-between;line-height:1;max-width:480px;padding:0 4px 0 20px;width:100%}.gh-cta-title+.gh-cta-input{margin-top:32px}.gh-cta-input span{align-items:center;background-color:var(--ghost-accent-color);border-radius:32px;color:#fff;display:flex;font-weight:600;height:calc(100% - 8px);justify-content:center;line-height:1;padding:0 16px}.gh-foot{font-size:calc(1.6rem*var(--font-multiplier, 1));padding-bottom:120px;padding-top:120px;text-align:center}.is-font-serif:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-foot{font-family:var(--gh-font-body,var(--font-serif))}.gh-foot-inner{display:grid;gap:32px;justify-content:center}.gh-foot .nav{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:center;list-style-type:none;margin:0;padding:0}.gh-copyright,.gh-copyright a{color:var(--color-secondary-text)}.gh-copyright a{text-decoration:underline}@font-face{font-family:Mona Sans;font-stretch:80% 125%;font-weight:200 900;src:url(/assets/fonts/Mona-Sans.woff2) format("woff2 supports variations"),url(/assets/fonts/Mona-Sans.woff2) format("woff2-variations")}:root{--font-sans:"Mona Sans",sans-serif}body{background-color:var(--background-color);font-variation-settings:"wdth" 110}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]){font-variation-settings:"wdth" 100}.gh-inner{--container-width:960px}:is(h1,h2,h3,h4,h5,h6){font-variation-settings:"wdth" 125;font-weight:800}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) :is(h1,h2,h3,h4,h5,h6){font-variation-settings:"wdth" 80;font-weight:600}.gh-btn{--multiplier:1.2;border-radius:0}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-btn{--multiplier:0.85;font-size:1.9rem;font-variation-settings:"wdth" 80}.gh-head-logo{margin-top:-3px}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-head-logo{font-size:2.8rem;font-variation-settings:"wdth" 80}@media (max-width:767px){#gh-head a:not(.gh-primary-btn),#gh-head.is-head-open .gh-search{color:var(--color-black)}#gh-head.is-head-open .gh-burger:after,#gh-head.is-head-open .gh-burger:before{background-color:var(--color-black)}}.gh-header{border:0!important;justify-content:flex-end;margin-bottom:0!important}.gh-header.has-background-image{min-height:var(--header-height,calc(100vh - var(--services-height, 177px)));padding-bottom:clamp(3.2rem,3.64vw + 1.75rem,6.4rem)}.gh-header.has-background-image:before{background:linear-gradient(180deg,rgba(0,0,0,.6),transparent,rgba(0,0,0,.6));opacity:1}.gh-header-inner{max-width:unset;padding:0 5vw}.gh-header-inner .gh-header-secondary{max-width:840px}.gh-header-content{max-width:unset;word-break:break-word}.gh-header-primary{font-size:calc(clamp(3rem, 5.4vh + 1.2rem, 7.2rem)*var(--font-multiplier, 1));line-height:1.1}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-header-primary{--font-multiplier:1.3;font-weight:600;letter-spacing:-.02em;line-height:1.05}@media (max-width:767px){.gh-header.has-background-image{aspect-ratio:1;min-height:unset}.gh-header-primary{font-size:calc(2.8rem*var(--font-multiplier, 1))}.gh-header-secondary{--font-multiplier:0.65}.gh-header-primary+.gh-header-secondary{margin-top:12px}.gh-archive-title{font-size:calc(2.2rem*var(--font-multiplier, 1))}}.gh-podcast-service-list{background-color:#15171a;display:flex;gap:64px;justify-content:center;padding:64px 0}.gh-podcast-service-list a{color:#fff;-moz-column-gap:16px;column-gap:16px;display:grid;font-weight:500;grid-template-columns:48px auto;grid-template-rows:auto auto}.gh-podcast-service-list svg{grid-row:-1/1;height:48px;width:48px}.gh-podcast-service-list svg+span{font-size:1.2rem;margin-top:2px}.gh-podcast-service-list span+span{font-size:1.8rem;font-weight:600}@media (max-width:767px){.gh-podcast-service-list{gap:40px;padding:32px 0}.gh-podcast-service-list a{display:block;font-size:0}.gh-podcast-service-list svg{height:40px;width:40px}.gh-podcast-service-list span{display:none}}.gh-list-item-inner{border:4px solid var(--color-darker-gray);gap:40px!important;padding:24px}.has-light-text .gh-list-item-inner{border-color:hsla(0,0%,100%,.3)}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-list-item-inner{border-width:2px}.gh-list-item-image{aspect-ratio:1;flex:unset!important;width:260px}.gh-list-item-content{display:flex;flex-direction:column;padding-bottom:64px;position:relative}.gh-list-item-published-at{margin-bottom:12px;order:-1}.gh-list-item-published-at:before{display:none}.gh-list-item-title{--font-multiplier:0.9;font-weight:800}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-list-item-title{--font-multiplier:1.3;font-weight:650;line-height:1.05}.gh-list-item-excerpt{display:-webkit-box;font-weight:500;-webkit-line-clamp:2;margin-top:10px;overflow-y:hidden;-webkit-box-orient:vertical}.gh-list-item-content:before{content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' style='margin-top:3px' viewBox='0 0 32 32'%3E%3Cpath d='M10.667 6.853V25.52l14.667-9.333-14.667-9.333z'/%3E%3C/svg%3E");font-size:0;left:16px;position:absolute;top:calc(100% - 40px);z-index:10}.gh-list-item-content:after{align-items:center;background-color:var(--ghost-accent-color);color:#fff;content:"View episode";display:flex;font-weight:600;height:48px;line-height:1;padding:0 24px 0 44px;position:absolute;top:calc(100% - 48px)}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-list-item-content:after{font-size:1.8rem;font-variation-settings:"wdth" 80}.gh-more{font-size:2.4rem;font-weight:700;margin-top:48px}@media (max-width:767px){.gh-list-item-image{width:100%}}.gh-cta-inner{border-bottom:4px solid var(--color-darker-gray);border-top:4px solid var(--color-darker-gray);padding-left:clamp(0rem,7.27vw + -2.91rem,6.4rem);padding-right:clamp(0rem,7.27vw + -2.91rem,6.4rem)}.has-light-text .gh-cta-inner{border-color:hsla(0,0%,100%,.3)}.gh-cta-title{--font-multiplier:1.3}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-cta-title{--font-multiplier:1.6;font-weight:600}.gh-cta-input{border-radius:0;height:60px;padding-right:0}.gh-cta-input span{border-radius:0;height:100%;padding:0 24px}.is-font-narrow:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]):not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-cta-input span{font-size:1.8rem;font-variation-settings:"wdth" 80}.gh-archive{margin-bottom:48px}.gh-podcast-service-list+.gh-archive{margin-top:clamp(6.4rem,4.09vw + 4.76rem,10rem)}.gh-meta-share{margin-top:24px}.gh-button-share{font-size:1.6rem}/*# sourceMappingURL=screen.css.map */
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Share controls appear partially unstyled after rebuild.

Line 1 keeps .gh-button-share usage but only minimal declarations remain, with base visual/interactive share-button styling removed. This is a user-facing regression and not just a build-path refactor. Please restore the missing share UI stylesheet import (or remove the corresponding markup/classes if intentional) before merge.

🧰 Tools
🪛 Stylelint (17.12.0)

[error] 1-1: Deprecated keyword "break-word" for property "word-break" (declaration-property-value-keyword-no-deprecated)

(declaration-property-value-keyword-no-deprecated)


[error] 1-1: Deprecated keyword "break-word" for property "word-break" (declaration-property-value-keyword-no-deprecated)

(declaration-property-value-keyword-no-deprecated)


[error] 1-1: Deprecated keyword "break-word" for property "word-break" (declaration-property-value-keyword-no-deprecated)

(declaration-property-value-keyword-no-deprecated)


[error] 1-1: Deprecated keyword "break-word" for property "word-break" (declaration-property-value-keyword-no-deprecated)

(declaration-property-value-keyword-no-deprecated)


[error] 1-1: Deprecated keyword "break-word" for property "word-break" (declaration-property-value-keyword-no-deprecated)

(declaration-property-value-keyword-no-deprecated)


[error] 1-1: Deprecated keyword "break-word" for property "word-break" (declaration-property-value-keyword-no-deprecated)

(declaration-property-value-keyword-no-deprecated)


[error] 1-1: Expected quotes around "Mona Sans" (font-family-name-quotes)

(font-family-name-quotes)


[error] 1-1: Expected "to" to be "100%" (keyframe-selector-notation)

(keyframe-selector-notation)


[error] 1-1: Expected "to" to be "100%" (keyframe-selector-notation)

(keyframe-selector-notation)


[error] 1-1: Expected "BlinkMacSystemFont" to be "blinkmacsystemfont" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Segoe" to be "segoe" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "UI" to be "ui" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Helvetica" to be "helvetica" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Arial" to be "arial" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Georgia" to be "georgia" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Menlo" to be "menlo" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Consolas" to be "consolas" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Monaco" to be "monaco" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Liberation" to be "liberation" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Mono" to be "mono" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Lucida" to be "lucida" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "Console" to be "console" (value-keyword-case)

(value-keyword-case)


[error] 1-1: Expected "currentColor" to be "currentcolor" (value-keyword-case)

(value-keyword-case)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/episode/assets/built/screen.css` at line 1, The share controls lost
their full styling during the build—restore the missing share UI stylesheet (the
CSS that defines .gh-button-share and related share-control rules) so
.gh-button-share and any share-related classes regain their visual/interactive
styles, or if the share markup was intentionally removed, delete the
.gh-button-share usage from templates/components instead; look for references to
.gh-button-share and the share controls in the built CSS and the corresponding
share markup to either re-import the original share stylesheet or remove the
classes/markup consistently.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
gulpfile.js (1)

38-39: 💤 Low value

Consider warning if sourceFile is unavailable.

The fallback to __dirname on line 39 would produce incorrect relative paths because __dirname is the repo root, not the CSS file's directory. In practice, source.input.file should always be populated during CSS processing, but if it's ever undefined (e.g., processing in-memory strings), the relative path would be wrong.

🛡️ Optional: add a warning for defensive clarity
         const [, quote, assetPath, trailingParams] = match;
         const sourceFile = atRule.source?.input?.file;
+        if (!sourceFile) {
+            console.warn('[localSharedAssetsImport] sourceFile unavailable, using fallback - relative path may be incorrect');
+        }
         const sourceDir = sourceFile ? path.dirname(sourceFile) : __dirname;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@gulpfile.js` around lines 38 - 39, The code falls back to __dirname when
atRule.source?.input?.file is undefined, which yields incorrect relative paths;
update the logic around sourceFile and sourceDir (the atRule variable and the
sourceFile/sourceDir assignment) to detect when sourceFile is missing and (1)
avoid silently using __dirname by instead setting sourceDir to null or a safe
placeholder, (2) emit a console or logger warning that source.input.file is
unavailable and relative path resolution may be incorrect, and (3) guard
downstream path.dirname or path.join usages to handle the null/placeholder case
so no incorrect repo-root paths are produced.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@gulpfile.js`:
- Around line 38-39: The code falls back to __dirname when
atRule.source?.input?.file is undefined, which yields incorrect relative paths;
update the logic around sourceFile and sourceDir (the atRule variable and the
sourceFile/sourceDir assignment) to detect when sourceFile is missing and (1)
avoid silently using __dirname by instead setting sourceDir to null or a safe
placeholder, (2) emit a console or logger warning that source.input.file is
unavailable and relative path resolution may be incorrect, and (3) guard
downstream path.dirname or path.join usages to handle the null/placeholder case
so no incorrect repo-root paths are produced.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 21f89c35-0d7b-4969-90cd-208020506c7b

📥 Commits

Reviewing files that changed from the base of the PR and between f4b2ff1 and 95f7e81.

📒 Files selected for processing (1)
  • gulpfile.js

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant