├── LICENSE ├── README.md ├── assets ├── built │ ├── main.min.js │ ├── main.min.js.map │ ├── screen.css │ └── screen.css.map ├── css │ ├── fonts.css │ ├── screen.css │ └── vars.css ├── fonts │ ├── mulish-v10-latin-600.woff │ ├── mulish-v10-latin-600.woff2 │ ├── mulish-v10-latin-700.woff │ ├── mulish-v10-latin-700.woff2 │ ├── mulish-v10-latin-700italic.woff │ ├── mulish-v10-latin-700italic.woff2 │ ├── mulish-v10-latin-800.woff │ ├── mulish-v10-latin-800.woff2 │ ├── mulish-v10-latin-italic.woff │ ├── mulish-v10-latin-italic.woff2 │ ├── mulish-v10-latin-regular.woff │ └── mulish-v10-latin-regular.woff2 ├── images │ ├── default-skin.png │ ├── default-skin.svg │ └── preloader.gif └── js │ └── main.js ├── author.hbs ├── default.hbs ├── gulpfile.js ├── index.hbs ├── package.json ├── page.hbs ├── partials ├── feature-image.hbs ├── icons │ ├── avatar.hbs │ ├── facebook.hbs │ ├── ghost-logo.hbs │ ├── infinity.hbs │ ├── location.hbs │ ├── point.hbs │ ├── rss.hbs │ ├── search.hbs │ ├── twitter.hbs │ └── website.hbs ├── post-card.hbs └── pswp.hbs ├── post.hbs └── tag.hbs /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2025 Ghost Foundation 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # London 2 | 3 | A custom, image-centric theme for [Ghost](https://github.com/TryGhost/Ghost). Made for publishers and portfolios with plenty of graphics to show off to the world. 4 | 5 | **Demo: https://london.ghost.io** 6 | 7 | # Instructions 8 | 9 | 1. [Download this theme](https://github.com/TryGhost/London/archive/main.zip) 10 | 2. Log into Ghost, and go to the `Design` settings area to upload the zip file 11 | 12 | # Development 13 | 14 | Edition styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need [Node](https://nodejs.org/), [Yarn](https://yarnpkg.com/) and [Gulp](https://gulpjs.com) installed globally. After that, from the theme's root directory: 15 | 16 | ```bash 17 | # Install 18 | yarn 19 | 20 | # Run build & watch for changes 21 | yarn dev 22 | ``` 23 | 24 | Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically. 25 | 26 | The `zip` Gulp task packages the theme files into `dist/london.zip`, which you can then upload to your site. 27 | 28 | ```bash 29 | yarn zip 30 | ``` 31 | 32 | # Contribution 33 | 34 | This repo is synced automatically with [TryGhost/Themes](https://github.com/TryGhost/Themes) monorepo. If you're looking to contribute or raise an issue, head over to the main repository [TryGhost/Themes](https://github.com/TryGhost/Themes) where our official themes are developed. 35 | 36 | # Copyright & License 37 | 38 | Copyright (c) 2013-2025 Ghost Foundation - Released under the [MIT license](LICENSE). 39 | -------------------------------------------------------------------------------- /assets/built/main.min.js: -------------------------------------------------------------------------------- 1 | function dropdown(){let o=window.matchMedia("(max-width: 767px)"),i=document.querySelector(".gh-head-menu"),r=i?.querySelector(".nav");if(r){let e=document.querySelector(".gh-head-logo"),t=r.innerHTML;o.matches&&r.querySelectorAll("li").forEach(function(e,t){e.style.transitionDelay=.03*(t+1)+"s"});let n=function(){if(!o.matches){for(var e=[];r.offsetWidth+64>i.offsetWidth&&r.lastElementChild;)e.unshift(r.lastElementChild),r.lastElementChild.remove();if(e.length){let t=document.createElement("button"),n=(t.setAttribute("class","nav-more-toggle gh-icon-btn"),t.setAttribute("aria-label","More"),t.innerHTML='',document.createElement("div"));n.setAttribute("class","gh-dropdown"),10<=e.length?(document.body.classList.add("is-dropdown-mega"),n.style.gridTemplateRows=`repeat(${Math.ceil(e.length/2)}, 1fr)`):document.body.classList.remove("is-dropdown-mega"),e.forEach(function(e){n.appendChild(e)}),t.appendChild(n),r.appendChild(t),document.body.classList.add("is-dropdown-loaded"),window.addEventListener("click",function(e){document.body.classList.contains("is-dropdown-open")?document.body.classList.remove("is-dropdown-open"):t.contains(e.target)&&document.body.classList.add("is-dropdown-open")})}else document.body.classList.add("is-dropdown-loaded")}};imagesLoaded(e,function(){n()}),window.addEventListener("load",function(){e||n()}),window.addEventListener("resize",function(){setTimeout(()=>{r.innerHTML=t,n()},1)})}}function lightbox(e){document.querySelectorAll(e).forEach(function(e){e.addEventListener("click",function(e){var t=e;t.preventDefault();for(var n,o=[],i=0,r=t.target.closest(".kg-card").previousElementSibling;r&&(r.classList.contains("kg-image-card")||r.classList.contains("kg-gallery-card"));){var a=[];r.querySelectorAll("img").forEach(function(e){a.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e}),i+=1}),r=r.previousElementSibling,o=a.concat(o)}t.target.classList.contains("kg-image")?o.push({src:t.target.getAttribute("src"),msrc:t.target.getAttribute("src"),w:t.target.getAttribute("width"),h:t.target.getAttribute("height"),el:t.target}):(n=!1,t.target.closest(".kg-gallery-card").querySelectorAll("img").forEach(function(e){o.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e}),n||e===t.target?n=!0:i+=1}));for(var s=t.target.closest(".kg-card").nextElementSibling;s&&(s.classList.contains("kg-image-card")||s.classList.contains("kg-gallery-card"));)s.querySelectorAll("img").forEach(function(e){o.push({src:e.getAttribute("src"),msrc:e.getAttribute("src"),w:e.getAttribute("width"),h:e.getAttribute("height"),el:e})}),s=s.nextElementSibling;e=document.querySelectorAll(".pswp")[0];new PhotoSwipe(e,PhotoSwipeUI_Default,o,{bgOpacity:.9,closeOnScroll:!0,fullscreenEl:!1,history:!1,index:i,shareEl:!1,zoomEl:!1,getThumbBoundsFn:function(e){var e=o[e].el,t=window.pageYOffset||document.documentElement.scrollTop,e=e.getBoundingClientRect();return{x:e.left,y:e.top+t,w:e.width}}}).init()})})}function pagination(e,s,l=!1){let c=document.querySelector(".gh-feed");if(!c)return;let t=!1,n=c.nextElementSibling||c.parentElement.nextElementSibling||document.querySelector(".gh-foot"),u=document.querySelector(".gh-loadmore"),o=(!document.querySelector("link[rel=next]")&&u&&u.remove(),async function(){var o=document.querySelector("link[rel=next]");if(o)try{var e=await(await fetch(o.href)).text(),i=(new DOMParser).parseFromString(e,"text/html"),r=i.querySelectorAll(".gh-feed:not(.gh-featured):not(.gh-related) > *");let t=document.createDocumentFragment(),n=[];r.forEach(function(e){e=document.importNode(e,!0);l&&(e.style.visibility="hidden"),t.appendChild(e),n.push(e)}),c.appendChild(t),s&&s(n,d);var a=i.querySelector("link[rel=next]");a&&a.href?o.href=a.href:(o.remove(),u&&u.remove())}catch(e){throw o.remove(),u&&u.remove(),e}}),d=async function(){n.getBoundingClientRect().top<=window.innerHeight&&document.querySelector("link[rel=next]")&&await o()};let i=new IntersectionObserver(async function(e){if(!t){if(t=!0,e[0].isIntersecting)if(l)await o();else for(;n.getBoundingClientRect().top<=window.innerHeight&&document.querySelector("link[rel=next]");)await o();t=!1,document.querySelector("link[rel=next]")||i.disconnect()}});e?i.observe(n):u.addEventListener("click",o)}((e,t)=>{"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()})("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){var n;return e&&t&&((n=(n=this._events=this._events||{})[e]=n[e]||[]).includes(t)||n.push(t)),this},t.once=function(e,t){var n;return e&&t&&(this.on(e,t),((n=this._onceEvents=this._onceEvents||{})[e]=n[e]||{})[t]=!0),this},t.off=function(e,t){e=this._events&&this._events[e];return e&&e.length&&-1!=(t=e.indexOf(t))&&e.splice(t,1),this},t.emitEvent=function(e,t){let n=this._events&&this._events[e];if(n&&n.length){n=n.slice(0),t=t||[];var o,i=this._onceEvents&&this._onceEvents[e];for(o of n)i&&i[o]&&(this.off(e,o),delete i[o]),o.apply(this,t)}return this},t.allOff=function(){return delete this._events,delete this._onceEvents,this},e}),((e,t)=>{"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)})("undefined"!=typeof window?window:this,function(t,e){let r=t.jQuery,a=t.console;function s(e,t,n){if(!(this instanceof s))return new s(e,t,n);let o=e,i;(o="string"==typeof e?document.querySelectorAll(e):o)?(this.elements=(i=o,Array.isArray(i)?i:"object"==typeof i&&"number"==typeof i.length?[...i]:[i]),this.options={},"function"==typeof t?n=t:Object.assign(this.options,t),n&&this.on("always",n),this.getImages(),r&&(this.jqDeferred=new r.Deferred),setTimeout(this.check.bind(this))):a.error("Bad element for imagesLoaded "+(o||e))}(s.prototype=Object.create(e.prototype)).getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)};let i=[1,9,11],l=(s.prototype.addElementImages=function(e){"IMG"===e.nodeName&&this.addImage(e),!0===this.options.background&&this.addElementBackgroundImages(e);var t,n,o=e.nodeType;if(o&&i.includes(o)){for(t of e.querySelectorAll("img"))this.addImage(t);if("string"==typeof this.options.background)for(n of e.querySelectorAll(this.options.background))this.addElementBackgroundImages(n)}},/url\((['"])?(.*?)\1\)/gi);function n(e){this.img=e}function o(e,t){this.url=e,this.element=t,this.img=new Image}return s.prototype.addElementBackgroundImages=function(t){var n=getComputedStyle(t);if(n){let e=l.exec(n.backgroundImage);for(;null!==e;){var o=e&&e[2];o&&this.addBackground(o,t),e=l.exec(n.backgroundImage)}}},s.prototype.addImage=function(e){e=new n(e);this.images.push(e)},s.prototype.addBackground=function(e,t){e=new o(e,t);this.images.push(e)},s.prototype.check=function(){if(this.progressedCount=0,this.hasAnyBroken=!1,this.images.length){let t=(e,t,n)=>{setTimeout(()=>{this.progress(e,t,n)})};this.images.forEach(function(e){e.once("progress",t),e.check()})}else this.complete()},s.prototype.progress=function(e,t,n){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+n,e,t)},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred&&(e=this.hasAnyBroken?"reject":"resolve",this.jqDeferred[e](this))},(n.prototype=Object.create(e.prototype)).check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},n.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},n.prototype.confirm=function(e,t){this.isLoaded=e;e=this.img.parentNode,e="PICTURE"===e.nodeName?e:this.img;this.emitEvent("progress",[this,e,t])},n.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},n.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},n.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},n.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},(o.prototype=Object.create(n.prototype)).check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},o.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},o.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},(s.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&((r=e).fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(r(this))})})(),s}),((e,t)=>{"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.PhotoSwipeUI_Default=t()})(this,function(){return function(o,s){function e(e){if(T)return!0;e=e||window.event,C.timeToIdle&&C.mouseUsed&&!v&&a();for(var t,n,o=(e.target||e.srcElement).getAttribute("class")||"",i=0;i"+e.label+"",C.parseShareButtonOut&&(i=C.parseShareButtonOut(e,i));g.children[0].innerHTML=i,g.children[0].onclick=q}function r(e){for(var t=0;tC.fitControlsWidth?(t=C.barsSize,C.captionEl&&"auto"===t.bottom?(p||((p=s.createEl("pswp__caption pswp__caption--fake")).appendChild(s.createEl("pswp__caption__center")),d.insertBefore(p,m),s.addClass(d,"pswp__ui--fit")),C.addCaptionHTMLFn(e,p,!0)?(e=p.clientHeight,n.bottom=parseInt(e,10)||44):n.bottom=t.top):n.bottom="auto"===t.bottom?0:t.bottom,n.top=t.top):n.top=n.bottom=0}function Z(){function e(e){if(e)for(var t=e.length,n=0;n{"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.PhotoSwipe=t()})(this,function(){return function(m,Z,t,z){var p={features:null,bind:function(e,t,n,o){var i=(o?"remove":"add")+"EventListener";t=t.split(" ");for(var r=0;rt.min[e]?n[e]=t.min[e]:n[e]=mt&&(Fe=0h.currItem.fitRatio&&Wt(Ie))}}var V,X,$,g,Q,J,ee,te,o,y,ne,oe,ie,re,ae,a,se,le,ce,ue,de,me,pe,i,he,fe,ge,ye,ve,we,s,xe,be,Ee,Ie,Ce,Te,Se,l,ke,Ae,De,_e,Le,c,u,Me,d,Oe,v,Fe,Re,Pe,Ze,ze,qe,Ne=e(),Be=e(),w=e(),x={},Ue=0,We={},b=e(),E=0,He=!0,Ke=[],je={},Ye=!1,Ge={},I=function(e){var t=Ge[e];if(t){var n=Array.prototype.slice.call(arguments);n.shift();for(var o=0;oh.currItem.fitRatio?Ye||(cn(h.currItem,!1,!0),Ye=!0):Ye&&(cn(h.currItem),Ye=!1)),Ve(Oe,w.x,w.y,y))},Xe=function(e){e.container&&Ve(e.container.style,e.initialPosition.x,e.initialPosition.y,e.initialZoomLevel,e)},$e=function(e,t){t[me]=oe+e+"px, 0px"+ie},Qe=function(e,t){var n;!f.loop&&t&&(t=g+(b.x*Ue-e)/b.x,n=Math.round(e-M.x),t<0&&0=O()-1&&n<0)&&(e=M.x+n*f.mainScrollEndFriction),M.x=e,$e(e,Q)},Je=function(e,t){var n=Et[e]-We[e];return Be[e]+Ne[e]+n-t/ne*n},k=function(e,t){e.x=t.x,e.y=t.y,t.id&&(e.id=t.id)},et=function(e){e.x=Math.round(e.x),e.y=Math.round(e.y)},tt=null,nt=function(){tt&&(p.unbind(document,"mousemove",nt),p.addClass(m,"pswp--has_mouse"),f.mouseUsed=!0,I("mouseUsed")),tt=setTimeout(function(){tt=null},100)},ot=function(e,t){e=sn(h.currItem,x,e);return t&&(d=e),e},it=function(e){return(e=e||h.currItem).initialZoomLevel},rt=function(e){return 0<(e=e||h.currItem).w?f.maxSpreadZoom:1},A={},at=0,st=function(e){A[e]&&(A[e].raf&&fe(A[e].raf),at--,delete A[e])},lt=function(e){A[e]&&st(e),A[e]||(at++,A[e]={})},ct=function(){for(var e in A)A.hasOwnProperty(e)&&st(e)},ut=function(e,t,n,o,i,r,a){function s(){A[e]&&(l=C()-c,o<=l?(st(e),r(n),a&&a()):(r((n-t)*i(l/o)+t),A[e].raf=he(s)))}var l,c=C();lt(e);s()},z={shout:I,listen:r,viewportSize:x,options:f,isMainScrollAnimating:function(){return v},getZoomLevel:function(){return y},getCurrentIndex:function(){return g},isDragging:function(){return l},isZooming:function(){return u},setScrollOffset:function(e,t){We.x=e,we=We.y=t,I("updateScrollOffset",We)},applyZoomPan:function(e,t,n,o){w.x=t,w.y=n,y=e,S(o)},init:function(){if(!V&&!X){h.framework=p,h.template=m,h.bg=p.getChildByClass(m,"pswp__bg"),ge=m.className,V=!0,s=p.detectFeatures(),he=s.raf,fe=s.caf,me=s.transform,ve=s.oldIE,h.scrollWrap=p.getChildByClass(m,"pswp__scroll-wrap"),h.container=p.getChildByClass(h.scrollWrap,"pswp__container"),Q=h.container.style,h.itemHolders=a=[{el:h.container.children[0],wrap:0,index:-1},{el:h.container.children[1],wrap:0,index:-1},{el:h.container.children[2],wrap:0,index:-1}],a[0].el.style.display=a[2].el.style.display="none",me?(t=s.perspective&&!i,oe="translate"+(t?"3d(":"("),ie=s.perspective?", 0px)":")"):(me="left",p.addClass(m,"pswp--ie"),$e=function(e,t){t.left=e+"px"},Xe=function(e){var t=1=O())&&(g=0),h.currItem=en(g),(s.isOldIOSPhone||s.isOldAndroid)&&(He=!1),m.setAttribute("aria-hidden","false"),f.modal&&(He?m.style.position="fixed":(m.style.position="absolute",m.style.top=p.getScrollY()+"px")),void 0===we&&(I("initialLayout"),we=ye=p.getScrollY());var n="pswp--open ";for(f.mainClass&&(n+=f.mainClass+" "),f.showHideOpacity&&(n+="pswp--animate_opacity "),n=(n=(n+=i?"pswp--touch":"pswp--notouch")+(s.animationName?" pswp--css_animation":""))+(s.svg?" pswp--svg":""),p.addClass(m,n),h.updateSize(),J=-1,E=null,e=0;e<3;e++)$e((e+J)*b.x,a[e].el.style);ve||p.bind(h.scrollWrap,te,h),r("initialZoomInEnd",function(){h.setContent(a[0],g-1),h.setContent(a[2],g+1),a[0].el.style.display=a[2].el.style.display="block",f.focus&&m.focus(),p.bind(document,"keydown",h),s.transform&&p.bind(h.scrollWrap,"click",h),f.mouseUsed||p.bind(document,"mousemove",nt),p.bind(window,"resize scroll orientationchange",h),I("bindEvents")}),h.setContent(a[1],g),h.updateCurrItem(),I("afterInit"),He||(re=setInterval(function(){at||l||u||y!==h.currItem.initialZoomLevel||h.updateSize()},1e3)),p.addClass(m,"pswp--visible")}var t},close:function(){V&&(X=!(V=!1),I("close"),p.unbind(window,"resize scroll orientationchange",h),p.unbind(window,"scroll",o.scroll),p.unbind(document,"keydown",h),p.unbind(document,"mousemove",nt),s.transform&&p.unbind(h.scrollWrap,"click",h),l&&p.unbind(window,ee,h),clearTimeout(xe),I("unbindEvents"),tn(h.currItem,null,!0,h.destroy))},destroy:function(){I("destroy"),Xt&&clearTimeout(Xt),m.setAttribute("aria-hidden","true"),m.className=ge,re&&clearInterval(re),p.unbind(h.scrollWrap,te,h),p.unbind(window,"scroll",h),St(),ct(),Ge=null},panTo:function(e,t,n){n||(e>d.min.x?e=d.min.x:ed.min.y?t=d.min.y:td.min[e]||rd.min[e]&&(l=f.panEndFriction,d.min[e],n=d.min[e]-Be[e]),(n<=0||s<0)&&1gt.x&&(i=gt.x)):d.min.x!==d.max.x&&(o=r)):(rh.currItem.fitRatio&&(w[e]+=t[e]*l)):(void 0!==i&&(Qe(i,!0),Le=i!==gt.x),d.min.x!==d.max.x&&(void 0!==o?w.x=o:Le||(w.x+=t.x*l)),void 0!==i)},Bt=function(){var e,t,n,o,i,r;c&&0!==(e=c.length)&&(k(D,c[0]),_.x=D.x-L.x,_.y=D.y-L.y,u&&1h.currItem.initialZoomLevel+h.currItem.initialZoomLevel/15&&(ze=!0),n=1,o=it(),i=rt(),t=mt&&(_.x-=c[0].x-ht.x),Math.abs(_.y)>=mt)&&(_.y-=c[0].y-ht.y),L.x=D.x,L.y=D.y,0===_.x&&0===_.y||("v"===Fe&&f.closeOnVerticalDrag&&!At()?(Ne.y+=_.y,w.y+=_.y,r=Rt(),Te=!0,I("onVerticalDrag",r),T(r),S()):(Ft(C(),D.x,D.y),De=!0,d=h.currItem.bounds,Nt("x",_)||(Nt("y",_),et(w),S())))))},Ut=function(){var t,n,o={lastFlickOffset:{},lastFlickDist:{},lastFlickSpeed:{},slowDownRatio:{},slowDownRatioReverse:{},speedDecelerationRatio:{},speedDecelerationRatioAbs:{},distanceOffset:{},backAnimDestination:{},backAnimStarted:{},calculateSwipeSpeed:function(e){n=(1d.min[t]?o.backAnimDestination[t]=d.min[t]:w[t]=O()&&(g=f.loop?0:O()-1,i=!0),i&&!f.loop||(E+=o,Ue-=o,n=!0));var e=b.x*Ue,r=Math.abs(e-M.x),a=n||e>M.x==0The image could not be loaded.',forceProgressiveLoading:!1,preload:[1,1],getNumItemsFn:function(){return $t.length}},rn=function(){return{center:{x:0,y:0},max:{x:0,y:0},min:{x:0,y:0}}},an=function(e,t,n){var o=e.bounds;o.center.x=Math.round((F.x-t)/2),o.center.y=Math.round((F.y-n)/2)+e.vGap.top,o.max.x=t>F.x?Math.round(F.x-t):o.center.x,o.max.y=n>F.y?Math.round(F.y-n)+e.vGap.top:o.center.y,o.min.x=t>F.x?0:o.center.x,o.min.y=n>F.y?e.vGap.top:o.center.y},sn=function(e,t,n){var o,i;return e.src&&!e.loadError?((o=!n)&&(e.vGap||(e.vGap={top:0,bottom:0}),I("parseVerticalMargin",e)),F.x=t.x,F.y=t.y-e.vGap.top-e.vGap.bottom,o&&(t=F.x/e.w,i=F.y/e.h,e.fitRatio=t=d.max.x&&n<=d.min.y&&n>=d.max.y)&&e.preventDefault(),h.panTo(t,n)},toggleDesktopZoom:function(e){e=e||{x:x.x/2+We.x,y:x.y/2+We.y};var t=f.getDoubleTapZoom(!0,h.currItem),n=y===t;h.mouseZoomedIn=!n,h.zoomTo(n?h.currItem.initialZoomLevel:t,e,333),p[(n?"remove":"add")+"Class"](m,"pswp--zoomed-in")}}});function pn(){fn&&clearTimeout(fn),yn&&clearTimeout(yn)}function hn(){var e=Sn(),t={};if(!(e.length<5)){var n,o=e.split("&");for(r=0;r{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).reframe=t()})(this,function(){function t(){for(var e=0,t=0,n=arguments.length;t{var e=document.querySelector(".gh-burger");e&&e.addEventListener("click",function(){document.body.classList.contains("is-head-open")?document.body.classList.remove("is-head-open"):document.body.classList.add("is-head-open")})})(),lightbox(".kg-image-card > .kg-image[width][height], .kg-gallery-image > img"),reframe(document.querySelectorAll(['.gh-content iframe[src*="youtube.com"]','.gh-content iframe[src*="youtube-nocookie.com"]','.gh-content iframe[src*="player.vimeo.com"]','.gh-content iframe[src*="kickstarter.com"][src*="video.html"]',".gh-content object",".gh-content embed"].join(","))),dropdown(),pagination(!0); -------------------------------------------------------------------------------- /assets/built/screen.css: -------------------------------------------------------------------------------- 1 | :root{--color-primary-text:#333;--color-secondary-text:#999;--color-white:#fff;--color-lighter-gray:#f6f6f6;--color-light-gray:#e6e6e6;--color-mid-gray:#ccc;--color-dark-gray:#444;--color-darker-gray:#15171a;--color-black:#000;--font-sans:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;--font-serif:Georgia,serif;--font-mono:Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--head-nav-gap:2.8rem;--h1-size:4.6rem;--gap:3.6rem;--header-spacing:80px}@media (max-width:767px){:root{--h1-size:3.2rem!important;--gap:2rem;--header-spacing:48px}}*,:after,:before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,h5,h6,p{margin:0}ol[role=list],ul[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{line-height:1.5;min-height:100vh;text-rendering:optimizespeed}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{display:block;max-width:100%}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}html{font-size:62.5%}body{background-color:var(--color-white);color:var(--color-primary-text);font-family:var(--gh-font-body,var(--font-sans));font-size:1.6rem;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{height:auto}a{color:var(--color-darker-gray);text-decoration:none}a:hover{opacity:.8}h1,h2,h3,h4,h5,h6{color:var(--color-darker-gray);font-family:var(--gh-font-heading,var(--font-sans));letter-spacing:-.02em;line-height:1.15}h1{font-size:var(--h1-size)}h2{font-size:2.8rem}h3{font-size:2.4rem}h4{font-size:2.2rem}h5{font-size:2rem}h6{font-size:1.8rem}hr{background-color:var(--color-light-gray);border:0;height:1px;width:100%}blockquote:not([class]){border-left:4px solid var(--ghost-accent-color);padding-left:2rem}figcaption{color:var(--color-secondary-text);font-size:1.4rem;line-height:1.4;margin-top:1.6rem;text-align:center}.kg-width-full figcaption{padding:0 1.6rem}.gh-content figcaption a{color:var(--color-darker-gray);text-decoration:none}pre{background-color:var(--color-lighter-gray);-webkit-hyphens:none;hyphens:none;line-height:1.5;overflow-x:scroll;padding:1.6rem 2.4rem;white-space:pre;-webkit-overflow-scrolling:touch}code{font-family:var(--font-mono);font-size:15px}:not(pre)>code{background-color:var(--color-lighter-gray);border-radius:3px;color:var(--ghost-accent-color);padding:.4rem}iframe{border:0;display:block;overflow:hidden;width:100%}@media (max-width:767px){h2{font-size:2.4rem}h3{font-size:2.1rem}}.gh-site{display:flex;flex-direction:column;min-height:100vh}.gh-main{flex-grow:1;padding-bottom:8rem;padding-top:8rem}.page-template .gh-main{padding-block:0}.gh-outer{padding-left:var(--gap);padding-right:var(--gap)}.gh-inner{margin:0 auto;max-width:var(--container-width,1200px)}.gh-canvas,.kg-width-full.kg-content-wide{--main:min(var(--content-width,720px),100% - var(--gap) * 2);--wide:minmax(0,calc((var(--container-width, 1200px) - var(--content-width, 720px))/2));--full:minmax(var(--gap),1fr);display:grid;grid-template-columns:[full-start] var(--full) [wide-start] var(--wide) [main-start] var(--main) [main-end] var(--wide) [wide-end] var(--full) [full-end]}.gh-canvas>*{grid-column:main}.kg-content-wide>div,.kg-width-wide{grid-column:wide}.kg-width-full{grid-column:full}.kg-width-full img{width:100%}@media (max-width:767px){#gh-main{padding-bottom:4.8rem;padding-top:4.8rem}}.gh-head{background-color:var(--color-white);height:100px}.gh-head-inner{align-items:center;-moz-column-gap:var(--head-nav-gap);column-gap:var(--head-nav-gap);display:grid;grid-auto-flow:row dense;grid-template-columns:1fr auto auto;height:100%}.gh-head-brand{line-height:1}.gh-head-brand-wrapper{align-items:center;display:flex}.gh-head-logo{font-family:var(--gh-font-heading,var(--font-sans));font-size:2.4rem;font-weight:700;letter-spacing:-.02em;position:relative}.gh-head-logo img{max-height:40px}.gh-head-logo img:nth-child(2){left:0;opacity:0;position:absolute;top:0}.gh-head-menu{display:flex}.gh-head .nav,.gh-head-menu{align-items:center;gap:var(--head-nav-gap)}.gh-head .nav{display:inline-flex;list-style:none;margin:0;padding:0;white-space:nowrap}.gh-head .nav-more-toggle{font-size:inherit;margin:0 -6px;position:relative;text-transform:inherit}.gh-head .nav-more-toggle svg{height:24px;width:24px}.gh-head-actions{align-items:center;display:flex;gap:var(--head-nav-gap);justify-content:flex-end}.gh-head-members{align-items:center;display:flex;gap:20px;white-space:nowrap}.gh-head-btn.gh-btn{font-size:inherit;font-weight:600}.gh-head-btn:not(.gh-btn){align-items:center;color:var(--ghost-accent-color);display:inline-flex}.gh-head-btn svg{height:1.3em;width:1.3em}.gh-search{margin-left:-6px;margin-right:-6px}.gh-search:hover{opacity:.9}.gh-head-brand .gh-search{margin-right:8px}@media (max-width:767px){.gh-head-members{flex-direction:column-reverse;gap:16px;width:100%}.gh-head-actions .gh-search{display:none}}@media (min-width:768px){.gh-head-brand .gh-search{display:none}body:not(.is-dropdown-loaded) .gh-head-menu .nav>li{opacity:0}}.is-head-left-logo .gh-head-inner{grid-template-columns:auto 1fr auto}@media (min-width:992px){.is-head-left-logo .gh-head-menu{margin-left:16px;margin-right:64px}}.is-head-middle-logo .gh-head-inner{grid-template-columns:1fr auto 1fr}.is-head-middle-logo .gh-head-brand{grid-column-start:2}.is-head-middle-logo .gh-head-actions{gap:28px}@media (min-width:992px){.is-head-middle-logo .gh-head-menu{margin-right:64px}}.is-head-stacked .gh-head{height:auto;position:relative}.is-head-stacked .gh-head-inner{grid-template-columns:1fr auto 1fr}.is-head-stacked .gh-head-brand{display:flex;grid-column-start:2;grid-row-start:1;min-height:80px}@media (max-width:767px){.is-head-stacked .gh-head-brand{min-height:unset}}@media (min-width:992px){.is-head-stacked .gh-head-inner{padding:0}.is-head-stacked .gh-head-brand{align-items:center;display:flex;height:80px}.is-head-stacked .gh-head-menu{grid-column:1/4;grid-row-start:2;height:56px;justify-content:center;margin:0 48px}.is-head-stacked .gh-head-menu:after,.is-head-stacked .gh-head-menu:before{background-color:var(--color-light-gray);content:"";height:1px;left:0;position:absolute;top:80px;width:100%}.is-head-stacked .gh-head-menu:after{top:136px}.is-head-stacked .gh-head-actions{grid-column:1/4;grid-row-start:1;justify-content:space-between}}.is-head-transparent .gh-head{background-color:transparent;left:0;position:absolute;right:0;z-index:90}.is-head-transparent .gh-head .nav>li a,.is-head-transparent .gh-head-description,.is-head-transparent .gh-head-link,.is-head-transparent .gh-head-logo,.is-head-transparent .gh-head-logo a,.is-head-transparent .gh-search,.is-head-transparent .gh-social,.is-head-transparent .nav-more-toggle{color:var(--color-white)}.is-head-transparent .gh-burger:after,.is-head-transparent .gh-burger:before{background-color:var(--color-white)}.is-head-transparent .gh-head-btn{background-color:#fff;color:#15171a}.is-head-transparent .gh-head-menu:after,.is-head-transparent .gh-head-menu:before{background-color:hsla(0,0%,100%,.2)}.is-head-transparent #announcement-bar-root{left:0;position:absolute;right:0}.is-head-transparent #announcement-bar-root:not(:empty)+:is(.site,.gh-site) .gh-head{margin-top:48px}.is-head-dark:not(.is-head-transparent) .gh-head{background-color:var(--color-darker-gray)}.is-head-dark:not(.is-head-transparent) .gh-head .nav a,.is-head-dark:not(.is-head-transparent) .gh-head-description,.is-head-dark:not(.is-head-transparent) .gh-head-link,.is-head-dark:not(.is-head-transparent) .gh-head-logo,.is-head-dark:not(.is-head-transparent) .gh-head-logo a,.is-head-dark:not(.is-head-transparent) .gh-search,.is-head-dark:not(.is-head-transparent) .gh-social,.is-head-dark:not(.is-head-transparent) .nav-more-toggle{color:var(--color-white)}.is-head-dark:not(.is-head-transparent) .gh-burger:after,.is-head-dark:not(.is-head-transparent) .gh-burger:before{background-color:var(--color-white)}.is-head-dark:not(.is-head-transparent) .gh-head-btn{background-color:#fff;color:#15171a}.is-head-dark:not(.is-head-transparent) .gh-head-menu:after,.is-head-dark:not(.is-head-transparent) .gh-head-menu:before{background-color:hsla(0,0%,100%,.2)}.is-head-brand:not(.is-head-transparent) .gh-head{background-color:var(--ghost-accent-color)}.is-head-brand:not(.is-head-transparent) .gh-head .nav a,.is-head-brand:not(.is-head-transparent) .gh-head-description,.is-head-brand:not(.is-head-transparent) .gh-head-link,.is-head-brand:not(.is-head-transparent) .gh-head-logo,.is-head-brand:not(.is-head-transparent) .gh-head-logo a,.is-head-brand:not(.is-head-transparent) .gh-search,.is-head-brand:not(.is-head-transparent) .gh-social,.is-head-brand:not(.is-head-transparent) .nav-more-toggle{color:var(--color-white)}.is-head-brand:not(.is-head-transparent) .gh-burger:after,.is-head-brand:not(.is-head-transparent) .gh-burger:before{background-color:var(--color-white)}.is-head-brand:not(.is-head-transparent) .gh-head-btn{background-color:#fff;color:#15171a}.is-head-brand:not(.is-head-transparent) .gh-head-menu:after,.is-head-brand:not(.is-head-transparent) .gh-head-menu:before{background-color:hsla(0,0%,100%,.3)}.gh-dropdown{background-color:#fff;border-radius:5px;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 7px 20px -5px rgba(0,0,0,.15);margin-top:24px;opacity:0;padding:12px 0;position:absolute;right:-16px;text-align:left;top:100%;transform:translate3d(0,6px,0);transition:opacity .3s,transform .2s;visibility:hidden;width:200px;z-index:90}.is-head-middle-logo .gh-dropdown{left:-24px;right:auto}.is-dropdown-mega .gh-dropdown{-moz-column-gap:40px;column-gap:40px;display:grid;grid-auto-flow:column;grid-template-columns:1fr 1fr;padding:20px 32px;width:auto}.is-dropdown-open .gh-dropdown{opacity:1;transform:translateY(0);visibility:visible}.gh-dropdown li a{color:#15171a!important;display:block;padding:6px 20px}.is-dropdown-mega .gh-dropdown li a{padding:8px 0}.gh-burger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;cursor:pointer;display:none;height:30px;margin-right:-3px;padding:0;position:relative;width:30px}.gh-burger:after,.gh-burger:before{background-color:var(--color-darker-gray);content:"";height:1px;left:3px;position:absolute;transition:all .2s cubic-bezier(.04,.04,.12,.96) .1008s;width:24px}.gh-burger:before{top:11px}.gh-burger:after{bottom:11px}.is-head-open .gh-burger:before{top:15px;transform:rotate(45deg)}.is-head-open .gh-burger:after{bottom:14px;transform:rotate(-45deg)}@media (max-width:767px){#gh-head{height:64px}#gh-head .gh-head-inner{gap:48px;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}#gh-head .gh-head-brand{align-items:center;display:grid;grid-column-start:1;grid-template-columns:1fr auto auto;height:64px}#gh-head .gh-head-logo{font-size:2.2rem}.gh-burger{display:block}#gh-head .gh-head-actions,#gh-head .gh-head-menu{justify-content:center;opacity:0;position:fixed;visibility:hidden}#gh-head .gh-head-menu{transform:translateY(0);transition:none}#gh-head .nav{align-items:center;gap:20px;line-height:1.4}#gh-head .nav a{font-size:2.6rem;font-weight:600;text-transform:none}#gh-head .nav li{opacity:0;transform:translateY(-4px)}#gh-head .gh-head-actions{text-align:center}#gh-head :is(.gh-head-btn,.gh-head-link){opacity:0;transform:translateY(8px)}#gh-head .gh-head-btn{font-size:1.8rem;text-transform:none;width:100%}#gh-head .gh-head-btn:not(.gh-btn){font-size:2rem}#gh-main{transition:opacity .4s}.is-head-open #gh-head{height:100%;inset:0;overflow-y:scroll;position:fixed;z-index:3999999;-webkit-overflow-scrolling:touch}.is-head-open:not(.is-head-brand):not(.is-head-dark):not(.is-head-transparent) #gh-head{background-color:var(--color-white)}.is-head-open.is-head-transparent #gh-head,.is-head-open:is(.is-head-transparent,.is-head-brand) #gh-head .gh-head-actions{background-color:var(--ghost-accent-color)}.is-head-open.is-head-dark #gh-head,.is-head-open.is-head-dark #gh-head .gh-head-actions{background-color:var(--color-darker-gray)}.is-head-open #gh-head .gh-head-actions,.is-head-open #gh-head .gh-head-menu{opacity:1;position:static;visibility:visible}.is-head-open #gh-head .nav{display:flex;flex-direction:column}.is-head-open #gh-head .nav li{opacity:1;transform:translateY(0);transition:transform .2s,opacity .2s}.is-head-open #gh-head .gh-head-actions{align-items:center;background-color:var(--color-white);bottom:0;display:inline-flex;flex-direction:column;gap:12px;left:0;padding:var(--gap) 0 calc(var(--gap) + 8px);position:sticky;right:0}.is-head-open #gh-head :is(.gh-head-btn,.gh-head-link){opacity:1;transform:translateY(0);transition:transform .4s,opacity .4s;transition-delay:.2s}.is-head-open #gh-head .gh-head-link{transition-delay:.4s}.is-head-open #gh-main{opacity:0}}.gh-cover{min-height:var(--cover-height,50vh);padding-bottom:6.4rem;padding-top:6.4rem;position:relative}.gh-cover-image{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%;z-index:-1}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-cover-title{font-family:var(--gh-font-heading,var(--font-serif))}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-cover-description{font-family:var(--gh-font-body,var(--font-serif))}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-card-title{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.01em}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-card-excerpt{font-family:var(--gh-font-body,var(--font-serif))}.gh-card{word-break:break-word}.page-template .gh-article-header{margin-top:var(--header-spacing,80px)}.gh-article-tag{color:var(--ghost-accent-color)}.gh-article-title{word-break:break-word}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-article-title{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.01em}.gh-article-excerpt{color:var(--color-secondary-text);font-size:2.1rem;line-height:1.5;margin-top:2rem}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-article-excerpt{font-family:var(--gh-font-body,var(--font-serif))}.gh-article-image{grid-column:wide-start/wide-end;margin-top:4rem}.gh-article-image img{width:100%}@media (max-width:767px){.gh-article-excerpt{font-size:1.9rem}.gh-article-image{margin-top:2.4rem}}.gh-content{font-size:var(--content-font-size,1.8rem);letter-spacing:var(--content-letter-spacing,0);margin-top:4rem;word-break:break-word}.gh-content>*+*{margin-bottom:0;margin-top:calc(1.6em*var(--content-spacing-multiplier, 1))}.gh-content>[id]{margin:0}.gh-content>.kg-card+[id]{margin-top:calc(2em*var(--content-spacing-multiplier, 1))!important}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .gh-content>[id]{font-family:var(--gh-font-heading,var(--font-serif));letter-spacing:-.01em}.gh-content>[id]:not(:first-child){margin-top:calc(1.6em*var(--content-spacing-multiplier, 1))}.gh-content>[id]+*{margin-top:calc(.8em*var(--content-spacing-multiplier, 1))}.gh-content>blockquote,.gh-content>hr{position:relative}.gh-content>blockquote,.gh-content>blockquote+*,.gh-content>hr,.gh-content>hr+*{margin-top:calc(2.4em*var(--content-spacing-multiplier, 1))}.gh-content h2{font-size:1.6em}.gh-content h3{font-size:1.4em}.gh-content a{color:var(--ghost-accent-color);text-decoration:underline;word-break:break-word}.gh-content .kg-callout-card .kg-callout-text,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>p,.gh-content .kg-toggle-card .kg-toggle-content>ul{font-size:.95em}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-callout-text,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ol,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>p,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content .kg-toggle-content>ul,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>blockquote,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>dl,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ol,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>p,.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .gh-content>ul{font-family:var(--gh-font-body,var(--font-serif))}.gh-content dl,.gh-content ol,.gh-content ul{padding-left:2.8rem}.gh-content :is(li+li,li :is(ul,ol)){margin-top:.8rem}.gh-content ol ol li{list-style-type:lower-alpha}.gh-content ol ol ol li{list-style-type:lower-roman}.gh-content table:not(.gist table){border-collapse:collapse;border-spacing:0;display:inline-block;font-family:var(--font-sans);font-size:1.6rem;max-width:100%;overflow-x:auto;vertical-align:top;white-space:nowrap;width:auto;-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at left,rgba(0,0,0,.2) 0,transparent 75%) 0,radial-gradient(ellipse at right,rgba(0,0,0,.2) 0,transparent 75%) 100%;background-attachment:scroll,scroll;background-repeat:no-repeat;background-size:10px 100%,10px 100%}.gh-content table:not(.gist table) td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:20px 100%}.gh-content table:not(.gist table) td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-repeat:no-repeat;background-size:20px 100%}.gh-content table:not(.gist table) th{background-color:var(--color-white);color:var(--color-darkgrey);font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase}.gh-content table:not(.gist table) td,.gh-content table:not(.gist table) th{border:1px solid var(--color-light-gray);padding:6px 12px}.page-template .gh-content:only-child{margin-top:0!important}.page-template .gh-content:only-child>:first-child:not(.kg-width-full){margin-top:var(--header-spacing,80px)}.page-template .gh-content>:last-child:not(.kg-width-full){margin-bottom:var(--footer-spacing,0)}@media (max-width:767px){.gh-content{font-size:1.7rem;margin-top:3.2rem}}.gh-comments{margin-bottom:-24px;margin-top:64px}.gh-comments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:40px}.gh-comments .gh-comments-title{margin-bottom:28px}.gh-comments-header .gh-comments-title{margin-bottom:0}.gh-comments-count{color:var(--color-secondary-text)}.gh-cta-gradient{background:linear-gradient(180deg,hsla(0,0%,100%,0),var(--color-white));content:"";grid-column:full-start/full-end;height:160px;margin-bottom:4rem;margin-top:-16rem;position:relative}.gh-cta-gradient:first-child{display:none}.gh-cta{display:flex;flex-direction:column;margin-bottom:4rem;text-align:center}.gh-cta-title{font-size:2.2rem;letter-spacing:-.02em;margin-bottom:3.2rem}.gh-cta-actions{align-items:center;display:flex;flex-direction:column}.gh-cta-link{color:var(--color-secondary-text);cursor:pointer;font-size:1.4rem;margin-top:.8rem;text-decoration:none}.gh-cta-link:hover{color:var(--color-darker-gray)}@media (max-width:767px){.gh-cta-actions{-moz-column-gap:.8rem;column-gap:.8rem}}.gh-content :not(.kg-card):not(table):not([id])+:is(.kg-card,table){margin-top:calc(2em*var(--content-spacing-multiplier, 1))}.gh-content :is(.kg-card,table)+:not(.kg-card):not(table):not([id]){margin-top:calc(2em*var(--content-spacing-multiplier, 1))}.gh-content>.kg-width-full+.kg-width-full:not(.kg-width-full.kg-card-hascaption+.kg-width-full){margin-top:0}.kg-image{margin-left:auto;margin-right:auto}.kg-embed-card{align-items:center;display:flex;flex-direction:column;width:100%}.kg-gallery-image,.kg-image[width][height]{cursor:pointer}.kg-gallery-image a:hover,.kg-image-card a:hover{opacity:1!important}.kg-card.kg-toggle-card .kg-toggle-heading-text{font-size:2rem;font-weight:700}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-toggle-card .kg-toggle-heading-text{font-family:var(--gh-font-heading,var(--font-serif))}.kg-callout-card.kg-card{border-radius:.25em}.kg-callout-card-accent a{text-decoration:underline}blockquote.kg-blockquote-alt{color:var(--color-secondary-text);font-style:normal;font-weight:400}.kg-card.kg-button-card .kg-btn{font-size:1em}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .kg-card.kg-header-card h2.kg-header-card-header{font-family:var(--gh-font-heading,var(--font-serif))}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .kg-header-card h3.kg-header-card-subheader{font-family:var(--gh-font-body,var(--font-serif))}.kg-audio-card,.kg-bookmark-card a.kg-bookmark-container,.kg-bookmark-card a.kg-bookmark-container:hover,.kg-file-card-container,.kg-file-card-container:hover,.kg-product-card-container{background:var(--background-color,#fff)!important;color:var(--color-darker-gray,#222)!important;opacity:1}.kg-bookmark-card .kg-bookmark-container{border-radius:.25em!important}.kg-bookmark-card .kg-bookmark-content{padding:1.15em}.kg-bookmark-card .kg-bookmark-title{font-size:.9em}.kg-bookmark-card .kg-bookmark-description{font-size:.8em;margin-top:.3em;max-height:none}.kg-bookmark-card .kg-bookmark-metadata{font-size:.8em}.kg-bookmark-card .kg-bookmark-thumbnail img{border-radius:0 .2em .2em 0}.has-light-text .kg-audio-card button{color:#fff}.has-light-text .kg-audio-card .kg-audio-volume-slider{color:hsla(0,0%,100%,.3)}.pagination{display:grid;grid-template-columns:1fr auto 1fr;margin-top:6.4rem}.page-number{grid-column-start:2}.older-posts{text-align:right}.gh-navigation{align-items:center;-moz-column-gap:2.4rem;column-gap:2.4rem;display:grid;grid-template-columns:1fr auto 1fr}.gh-navigation>div{align-items:center;display:flex}.gh-navigation-next{justify-content:flex-end}.gh-navigation-link{align-items:center;display:inline-flex}.gh-navigation-link svg{height:16px;width:16px}.gh-navigation-previous svg{margin-right:.4rem}.gh-navigation-next svg{margin-left:.4rem}@media (max-width:767px){.gh-navigation-hide{display:none}}.gh-btn{align-items:center;background-color:var(--color-darker-gray);border:0;border-radius:100px;color:var(--color-white);cursor:pointer;display:inline-flex;font-size:1.6rem;font-weight:700;gap:.4em;justify-content:center;letter-spacing:inherit;line-height:1;padding:calc(.75em*var(--multiplier, 1)) calc(1.15em*var(--multiplier, 1))}.gh-btn:hover{opacity:.95}.gh-post-upgrade-cta .gh-btn{line-height:inherit}.gh-primary-btn{background-color:var(--ghost-accent-color)}.gh-outline-btn{background-color:transparent;border:1px solid var(--color-light-gray);color:var(--color-darker-gray);text-decoration:none}.gh-outline-btn:hover{border-color:var(--color-mid-gray);opacity:1}.gh-icon-btn{align-items:center;background-color:transparent;border:0;color:var(--darker-gray-color);cursor:pointer;display:inline-flex;height:30px;justify-content:center;outline:none;padding:0;width:30px}.gh-icon-btn svg{height:20px;width:20px}.gh-text-btn{align-items:center;background-color:transparent;border:0;color:var(--darker-gray-color);cursor:pointer;display:inline-flex;justify-content:center;letter-spacing:inherit;margin:0;outline:none;padding:0;will-change:opacity}.gh-text-btn:hover{opacity:.8}.gh-foot{color:var(--color-secondary-text);padding-bottom:8rem;padding-top:8rem;white-space:nowrap}.gh-foot-inner{display:grid;font-size:1.3rem;gap:40px;grid-template-columns:1fr auto 1fr}.no-menu .gh-foot-inner{align-items:center;display:flex;flex-direction:column;gap:24px}.gh-foot-menu .nav{align-items:center;display:inline-flex;flex-wrap:wrap;justify-content:center;list-style:none;margin:0;padding:0;row-gap:4px}.gh-foot-menu .nav li{align-items:center;display:flex}.gh-foot-menu .nav li+li:before{content:"•";font-size:.9rem;line-height:0;padding:0 1.2rem}.gh-powered-by{text-align:right}.gh-foot a{color:var(--color-secondary-text)}.gh-foot a:hover{color:var(--color-darker-gray);opacity:1}@media (max-width:767px){.gh-foot{padding-bottom:12rem;padding-top:6.4rem}.gh-foot-inner{grid-template-columns:1fr;text-align:center}.gh-foot-menu .nav{flex-direction:column}.gh-foot-menu .nav li+li{margin-top:.4rem}.gh-foot-menu .nav li+li:before{display:none}.gh-powered-by{text-align:center}}.pswp{backface-visibility:hidden;display:none;height:100%;left:0;outline:none;overflow:hidden;position:absolute;top:0;touch-action:none;width:100%;z-index:3999999;-webkit-text-size-adjust:100%}.pswp img{max-width:none}.pswp--animate_opacity{opacity:.001;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--open{display:block}.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--zoomed-in .pswp__img{cursor:grab}.pswp--dragging .pswp__img{cursor:grabbing}.pswp__bg{backface-visibility:hidden;background-color:rgba(0,0,0,.85);opacity:0;transform:translateZ(0);transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp__bg,.pswp__scroll-wrap{height:100%;left:0;position:absolute;top:0;width:100%}.pswp__scroll-wrap{overflow:hidden}.pswp__container,.pswp__zoom-wrap{backface-visibility:hidden;bottom:0;left:0;position:absolute;right:0;top:0;touch-action:none}.pswp__container,.pswp__img{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.pswp__zoom-wrap{position:absolute;transform-origin:left top;transition:transform 333ms cubic-bezier(.4,0,.22,1);width:100%}.pswp--animated-in .pswp__bg,.pswp--animated-in .pswp__zoom-wrap{transition:none}.pswp__item{bottom:0;overflow:hidden;right:0}.pswp__img,.pswp__item{left:0;position:absolute;top:0}.pswp__img{height:auto;width:auto}.pswp__img--placeholder{backface-visibility:hidden}.pswp__img--placeholder--blank{background:var(--color-black)}.pswp--ie .pswp__img{height:auto!important;left:0;top:0;width:100%!important}.pswp__error-msg{color:var(--color-secondary-text);font-size:14px;left:0;line-height:16px;margin-top:-8px;position:absolute;text-align:center;top:50%;width:100%}.pswp__error-msg a{color:var(--color-secondary-text);text-decoration:underline}.pswp__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;display:block;float:right;height:44px;margin:0;overflow:visible;padding:0;position:relative;transition:opacity .2s;width:44px}.pswp__button:focus,.pswp__button:hover{opacity:1}.pswp__button:active{opacity:.9;outline:none}.pswp__button::-moz-focus-inner{border:0;padding:0}.pswp__ui--over-close .pswp__button--close{opacity:1}.pswp__button,.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{background:url(../images/default-skin.png) 0 0 no-repeat;background-size:264px 88px;height:44px;width:44px}@media (-webkit-min-device-pixel-ratio:1.09375),(-webkit-min-device-pixel-ratio:1.1),(min-resolution:1.1dppx),(min-resolution:105dpi){.pswp--svg .pswp__button,.pswp--svg .pswp__button--arrow--left:before,.pswp--svg .pswp__button--arrow--right:before{background-image:url(../images/default-skin.svg)}.pswp--svg .pswp__button--arrow--left,.pswp--svg .pswp__button--arrow--right{background:none}}.pswp__button--close{background-position:0 -44px}.pswp__button--share{background-position:-44px -44px}.pswp__button--fs{display:none}.pswp--supports-fs .pswp__button--fs{display:block}.pswp--fs .pswp__button--fs{background-position:-44px 0}.pswp__button--zoom{background-position:-88px 0;display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__button--zoom{background-position:-132px 0}.pswp--touch .pswp__button--arrow--left,.pswp--touch .pswp__button--arrow--right{visibility:hidden}.pswp__button--arrow--left,.pswp__button--arrow--right{background:none;height:100px;margin-top:-50px;position:absolute;top:50%;width:70px}.pswp__button--arrow--left{left:0}.pswp__button--arrow--right{right:0}.pswp__button--arrow--left:before,.pswp__button--arrow--right:before{content:"";height:30px;position:absolute;top:35px;width:32px}.pswp__button--arrow--left:before{background-position:-138px -44px;left:6px}.pswp__button--arrow--right:before{background-position:-94px -44px;right:6px}.pswp__counter{color:var(--color-white);font-size:11px;font-weight:700;height:44px;left:0;line-height:44px;padding:0 15px;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__caption{bottom:0;left:0;min-height:44px;position:absolute;width:100%}.pswp__caption__center{color:var(--color-white);font-size:11px;line-height:1.6;margin:0 auto;max-width:420px;padding:25px 15px 30px;text-align:center}.pswp__caption__center .post-caption-title{font-size:15px;font-weight:500;margin-bottom:7px;text-transform:uppercase}.pswp__caption__center .post-caption-meta-item+.post-caption-meta-item:before{content:"\02022";padding:0 4px}.pswp__caption--empty{display:none}.pswp__caption--fake{visibility:hidden}.pswp__preloader{direction:ltr;height:44px;left:50%;margin-left:-22px;opacity:0;position:absolute;top:0;transition:opacity .25s ease-out;width:44px;will-change:opacity}.pswp__preloader__icn{height:20px;margin:12px;width:20px}.pswp__preloader--active{opacity:1}.pswp__preloader--active .pswp__preloader__icn{background:url(../images/preloader.gif) 0 0 no-repeat}.pswp--css_animation .pswp__preloader--active{opacity:1}.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn{animation:clockwise .5s linear infinite}.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut{animation:donut-rotate 1s cubic-bezier(.4,0,.22,1) infinite}.pswp--css_animation .pswp__preloader__icn{background:none;height:14px;left:15px;margin:0;opacity:.75;position:absolute;top:15px;width:14px}.pswp--css_animation .pswp__preloader__cut{height:14px;overflow:hidden;position:relative;width:7px}.pswp--css_animation .pswp__preloader__donut{background:none;border-bottom:2px solid transparent;border-left:2px solid transparent;border-radius:50%;border-right:2px solid var(--color-white);border-top:2px solid var(--color-white);box-sizing:border-box;height:14px;left:0;margin:0;position:absolute;top:0;width:14px}@media screen and (max-width:1024px){.pswp__preloader{float:right;left:auto;margin:0;position:relative;top:auto}}@keyframes clockwise{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes donut-rotate{0%{transform:rotate(0)}50%{transform:rotate(-140deg)}to{transform:rotate(0)}}.pswp__ui{opacity:1;visibility:visible;z-index:1550;-webkit-font-smoothing:auto}.pswp__top-bar{height:44px;left:0;position:absolute;top:0;width:100%}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right,.pswp__caption,.pswp__top-bar{backface-visibility:hidden;transition:opacity 333ms cubic-bezier(.4,0,.22,1);will-change:opacity}.pswp--has_mouse .pswp__button--arrow--left,.pswp--has_mouse .pswp__button--arrow--right{visibility:visible}.pswp__ui--idle .pswp__button--arrow--left,.pswp__ui--idle .pswp__button--arrow--right,.pswp__ui--idle .pswp__top-bar{opacity:0}.pswp__ui--hidden .pswp__button--arrow--left,.pswp__ui--hidden .pswp__button--arrow--right,.pswp__ui--hidden .pswp__caption,.pswp__ui--hidden .pswp__top-bar{opacity:.001}.pswp__ui--one-slide .pswp__button--arrow--left,.pswp__ui--one-slide .pswp__button--arrow--right,.pswp__ui--one-slide .pswp__counter{display:none}.pswp__element--disabled{display:none!important}.pswp--minimal--dark .pswp__top-bar{background:none}@font-face{font-family:Mulish;font-style:normal;font-weight:400;src:local(""),url(../fonts/mulish-v10-latin-regular.woff2) format("woff2"),url(../fonts/mulish-v10-latin-regular.woff) format("woff")}@font-face{font-family:Mulish;font-style:normal;font-weight:600;src:local(""),url(../fonts/mulish-v10-latin-600.woff2) format("woff2"),url(../fonts/mulish-v10-latin-600.woff) format("woff")}@font-face{font-family:Mulish;font-style:normal;font-weight:700;src:local(""),url(../fonts/mulish-v10-latin-700.woff2) format("woff2"),url(../fonts/mulish-v10-latin-700.woff) format("woff")}@font-face{font-family:Mulish;font-style:normal;font-weight:800;src:local(""),url(../fonts/mulish-v10-latin-800.woff2) format("woff2"),url(../fonts/mulish-v10-latin-800.woff) format("woff")}@font-face{font-family:Mulish;font-style:italic;font-weight:400;src:local(""),url(../fonts/mulish-v10-latin-italic.woff2) format("woff2"),url(../fonts/mulish-v10-latin-italic.woff) format("woff")}@font-face{font-family:Mulish;font-style:italic;font-weight:700;src:local(""),url(../fonts/mulish-v10-latin-700italic.woff2) format("woff2"),url(../fonts/mulish-v10-latin-700italic.woff) format("woff")}:root{--color-primary:var(--ghost-accent-color,#3eb0ef);--color-base:#131313;--color-border:#ddd;--font-sans:Mulish,sans-serif;--font-serif:Georgia,Times,serif;--font-mono:Menlo,Courier,monospace;--font-light:100;--font-normal:400;--font-bold:700;--font-heavy:800;--xlarge:1680px;--large:1280px;--medium:980px;--small:740px;--xsmall:480px;--height:4rem;--margin:2rem;--radius:0.5rem;--header-spacing:max(6vw,64px)}.img{background-position:50%;background-size:cover;border-radius:100%;display:block;height:100%;width:100%}.hidden{position:absolute;text-indent:-9999px;visibility:hidden}.gh-canvas{margin-left:calc(var(--gap)*-1);margin-right:calc(var(--gap)*-1)}.site-wrapper{min-height:100vh;padding:0 3vw}@media (max-width:850px){.site-wrapper{padding:6vw}}.page-head{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:auto;max-width:60%;padding:12vw 0;text-align:center}.page-head-title{color:var(--color-base);font-size:5rem;font-weight:800;line-height:1.3;margin:0;word-break:break-word}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .page-head-title{font-family:var(--gh-font-heading,var(--font-serif))}@media (max-width:500px){.page-head{max-width:none;padding:20vw 0}.page-head-title{font-size:2.4rem}}.page-head-description{color:var(--color-base);font-size:2.2rem;line-height:1.35em;margin:16px 0;opacity:.5}@media (max-width:500px){.page-head-description{font-size:1.6rem}}.gh-head-logo{font-size:2.1rem;letter-spacing:1px;text-transform:uppercase}.gh-head-actions,.gh-head-menu{font-size:1.4rem;font-weight:600}@media (max-width:850px){body:not(.is-head-open) .gh-head{margin:-6vw}}.post-feed{display:flex;flex-wrap:wrap}.post-card{background:linear-gradient(135deg,#1f1f1f,#111) 50%;background-size:cover;counter-increment:posts;display:flex;flex:1 1 50%;height:35vw;overflow:hidden;position:relative}@media (max-width:700px){.post-card{flex:1 1 100%;height:70vw}}.post-card-large{flex:1 1 100%}.post-card-link{display:block;flex:1 1 auto;position:relative}.post-card-link:hover{opacity:1}.post-card-link img{height:100%;inset:0;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}.post-card-content{align-items:center;background:rgba(0,0,0,.4);bottom:0;color:#fff;display:flex;flex:1 1 auto;justify-content:center;left:0;opacity:1;position:absolute;right:0;top:0;transition:opacity .5s cubic-bezier(.33,0,.2,1)}.post-card:not(.no-image) .post-card-content{opacity:0}@media (max-width:700px){.post-card:not(.no-image) .post-card-content{opacity:1}}.post-card-link:hover .post-card-content{opacity:1}.post-card-title{color:var(--color-white);display:inline-block;font-size:3.4rem;font-weight:800;margin:0;max-width:70%;text-align:center;word-break:break-word}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .post-card-title{font-family:var(--gh-font-heading,var(--font-serif))}.post-card.no-image:before{bottom:-.15em;color:hsla(0,0%,100%,.1);content:counter(posts);display:block;font-size:28vw;font-weight:var(--font-heavy);letter-spacing:-.05em;line-height:1em;position:absolute;right:5vw}.post-card.no-image .post-card-content{align-items:flex-start;justify-content:flex-start;padding:4vw}.post-card.no-image .post-card-title{line-height:1.15em;text-align:left}.post-card.no-image:hover .post-card-title{text-decoration:underline}@media (max-width:700px){.post-card.no-image:before{font-size:50vw}}.post-content{margin:0 auto;padding-top:max(6vw,64px)}.page-template .post-content{padding-top:0}.page-template .post-content-header{margin-top:var(--header-spacing)}.post-content-title{color:var(--color-base);font-weight:800;line-height:1.1;margin:0 0 16px;text-align:center;word-break:break-word}.has-serif-title:not([class*=" gh-font-heading"]):not([class^=gh-font-heading]) .post-content-title{font-family:var(--gh-font-heading,var(--font-serif))}.post-content-excerpt{color:var(--color-base);font-size:2rem;line-height:1.6em;opacity:.5;text-align:center;word-break:break-word}.has-serif-body:not([class*=" gh-font-body"]):not([class^=gh-font-body]) .post-content-excerpt{font-family:var(--gh-font-body,var(--font-serif))}@media (max-width:500px){.post-content-excerpt{font-size:1.8rem}}.post-content-image{margin:40px 0 2vw}.post-content-image .kg-image{width:100%}@media (max-width:960px){.post-content-image .kg-image{width:88vw}}.post-content-comments{margin-top:64px}.author-meta{justify-content:center;margin-bottom:10px}.author-links,.author-meta{align-items:center;display:flex}.author-links{margin-top:20px}.author-links a{color:var(--color-base);display:block;margin:0;opacity:.4;padding:0 12px}.author-links a:hover{opacity:1;text-decoration:none}.author-links .divider{display:inline-block;margin:0 3px}/*# sourceMappingURL=screen.css.map */ 2 | -------------------------------------------------------------------------------- /assets/built/screen.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/vars.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/reset.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/global.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/layout.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/header.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/cover.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/loop.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/post-card.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/article.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/content.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/comments.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/cta.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/card.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/pagination.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/navigation.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/button.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/components/footer.css","../../../../node_modules/@tryghost/shared-theme-assets/assets/css/v1/vendor/pswp.css","fonts.css","vars.css","screen.css"],"names":[],"mappings":"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","file":"screen.css","sourcesContent":[":root {\n --color-primary-text: #333;\n --color-secondary-text: #999;\n --color-white: #fff;\n --color-lighter-gray: #f6f6f6;\n --color-light-gray: #e6e6e6;\n --color-mid-gray: #ccc;\n --color-dark-gray: #444;\n --color-darker-gray: #15171a;\n --color-black: #000;\n --font-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; /* stylelint-disable-line value-keyword-case */\n --font-serif: Georgia, serif; /* stylelint-disable-line value-keyword-case */\n --font-mono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace; /* stylelint-disable-line value-keyword-case */\n --head-nav-gap: 2.8rem;\n --h1-size: 4.6rem;\n --gap: 3.6rem;\n --header-spacing: 80px;\n}\n\n@media (max-width: 767px) {\n :root {\n --h1-size: 3.2rem !important;\n --gap: 2rem;\n --header-spacing: 48px;\n }\n}\n","/* Box sizing rules */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/* Remove default margin */\nbody,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nfigure,\nblockquote,\ndl,\ndd {\n margin: 0;\n}\n\n/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\nul[role=\"list\"],\nol[role=\"list\"] {\n list-style: none;\n}\n\n/* Set core root defaults */\nhtml:focus-within {\n scroll-behavior: smooth;\n}\n\n/* Set core body defaults */\nbody {\n min-height: 100vh;\n line-height: 1.5;\n text-rendering: optimizespeed;\n}\n\n/* A elements that don't have a class get default styles */\na:not([class]) {\n text-decoration-skip-ink: auto;\n}\n\n/* Make images easier to work with */\nimg,\npicture {\n display: block;\n max-width: 100%;\n}\n\n/* Inherit fonts for inputs and buttons */\ninput,\nbutton,\ntextarea,\nselect {\n font: inherit;\n}\n\n/* Remove all animations and transitions for people that prefer not to see them */\n@media (prefers-reduced-motion: reduce) {\n html:focus-within {\n scroll-behavior: auto;\n }\n\n *,\n *::before,\n *::after {\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n scroll-behavior: auto !important;\n }\n}\n","html {\n font-size: 62.5%;\n}\n\nbody {\n font-family: var(--gh-font-body, var(--font-sans));\n font-size: 1.6rem;\n line-height: 1.6;\n color: var(--color-primary-text);\n background-color: var(--color-white);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nimg {\n height: auto;\n}\n\na {\n color: var(--color-darker-gray);\n text-decoration: none;\n}\n\na:hover {\n opacity: 0.8;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-family: var(--gh-font-heading, var(--font-sans));\n line-height: 1.15;\n color: var(--color-darker-gray);\n letter-spacing: -0.02em;\n}\n\nh1 {\n font-size: var(--h1-size);\n}\n\nh2 {\n font-size: 2.8rem;\n}\n\nh3 {\n font-size: 2.4rem;\n}\n\nh4 {\n font-size: 2.2rem;\n}\n\nh5 {\n font-size: 2rem;\n}\n\nh6 {\n font-size: 1.8rem;\n}\n\nhr {\n width: 100%;\n height: 1px;\n background-color: var(--color-light-gray);\n border: 0;\n}\n\nblockquote:not([class]) {\n padding-left: 2rem;\n border-left: 4px solid var(--ghost-accent-color);\n}\n\nfigcaption {\n margin-top: 1.6rem;\n font-size: 1.4rem;\n line-height: 1.4;\n color: var(--color-secondary-text);\n text-align: center;\n}\n\n.kg-width-full figcaption {\n padding: 0 1.6rem;\n}\n\n.gh-content figcaption a {\n color: var(--color-darker-gray);\n text-decoration: none;\n}\n\npre {\n padding: 1.6rem 2.4rem;\n overflow-x: scroll;\n hyphens: none;\n line-height: 1.5;\n white-space: pre;\n background-color: var(--color-lighter-gray);\n -webkit-overflow-scrolling: touch;\n}\n\ncode {\n font-family: var(--font-mono);\n font-size: 15px;\n}\n\n:not(pre) > code {\n padding: 0.4rem;\n color: var(--ghost-accent-color);\n background-color: var(--color-lighter-gray);\n border-radius: 3px;\n}\n\niframe {\n display: block;\n width: 100%;\n overflow: hidden;\n border: 0;\n}\n\n@media (max-width: 767px) {\n h2 {\n font-size: 2.4rem;\n }\n\n h3 {\n font-size: 2.1rem;\n }\n}\n",".gh-site {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.gh-main {\n flex-grow: 1;\n padding-top: 8rem;\n padding-bottom: 8rem;\n}\n\n.page-template .gh-main {\n padding-block: 0;\n}\n\n.gh-outer {\n padding-right: var(--gap);\n padding-left: var(--gap);\n}\n\n.gh-inner {\n max-width: var(--container-width, 1200px);\n margin: 0 auto;\n}\n\n/* Canvas creates a multi-column, centered grid which the post\nis laid out on top of. Canvas just defines the grid, we don't\nuse it for applying any other styles. */\n\n.gh-canvas,\n.kg-width-full.kg-content-wide {\n --main: min(var(--content-width, 720px), 100% - var(--gap) * 2);\n --wide: minmax(0, calc((var(--container-width, 1200px) - var(--content-width, 720px)) / 2));\n --full: minmax(var(--gap), 1fr);\n\n display: grid;\n grid-template-columns:\n [full-start] var(--full)\n [wide-start] var(--wide)\n [main-start] var(--main) [main-end]\n var(--wide) [wide-end]\n var(--full) [full-end];\n}\n\n.gh-canvas > * {\n grid-column: main;\n}\n\n.kg-width-wide,\n.kg-content-wide > div {\n grid-column: wide;\n}\n\n.kg-width-full {\n grid-column: full;\n}\n\n.kg-width-full img {\n width: 100%;\n}\n\n@media (max-width: 767px) {\n #gh-main {\n padding-top: 4.8rem;\n padding-bottom: 4.8rem;\n }\n}\n",".gh-head {\n height: 100px;\n background-color: var(--color-white);\n}\n\n.gh-head-inner {\n display: grid;\n grid-template-columns: 1fr auto auto;\n grid-auto-flow: row dense;\n column-gap: var(--head-nav-gap);\n align-items: center;\n height: 100%;\n}\n\n.gh-head-brand {\n line-height: 1;\n}\n\n.gh-head-brand-wrapper {\n display: flex;\n align-items: center;\n}\n\n.gh-head-logo {\n position: relative;\n font-family: var(--gh-font-heading, var(--font-sans));\n font-size: 2.4rem;\n font-weight: 700;\n letter-spacing: -0.02em;\n}\n\n.gh-head-logo img {\n max-height: 40px;\n}\n\n.gh-head-logo img:nth-child(2) {\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n}\n\n.gh-head-menu {\n display: flex;\n gap: var(--head-nav-gap);\n align-items: center;\n}\n\n.gh-head .nav {\n display: inline-flex;\n gap: var(--head-nav-gap);\n align-items: center;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n list-style: none;\n}\n\n.gh-head .nav-more-toggle {\n position: relative;\n margin: 0 -6px;\n font-size: inherit;\n text-transform: inherit;\n}\n\n.gh-head .nav-more-toggle svg {\n width: 24px;\n height: 24px;\n}\n\n.gh-head-actions {\n display: flex;\n gap: var(--head-nav-gap);\n align-items: center;\n justify-content: flex-end;\n}\n\n.gh-head-members {\n display: flex;\n gap: 20px;\n align-items: center;\n white-space: nowrap;\n}\n\n.gh-head-btn.gh-btn {\n font-size: inherit;\n font-weight: 600;\n}\n\n.gh-head-btn:not(.gh-btn) {\n display: inline-flex;\n align-items: center;\n color: var(--ghost-accent-color);\n}\n\n.gh-head-btn svg {\n width: 1.3em;\n height: 1.3em;\n}\n\n.gh-search {\n margin-right: -6px;\n margin-left: -6px;\n}\n\n.gh-search:hover {\n opacity: 0.9;\n}\n\n.gh-head-brand .gh-search {\n margin-right: 8px;\n}\n\n@media (max-width: 767px) {\n .gh-head-members {\n flex-direction: column-reverse;\n gap: 16px;\n width: 100%;\n }\n\n .gh-head-actions .gh-search {\n display: none;\n }\n}\n\n@media (min-width: 768px) {\n .gh-head-brand .gh-search {\n display: none;\n }\n\n body:not(.is-dropdown-loaded) .gh-head-menu .nav > li {\n opacity: 0;\n }\n}\n\n/* Header variants\n/* ---------------------------------------------------------- */\n\n/*\n======================================================================\nLOGO Home About Collection Author Portal Login Subscribe\n======================================================================\n*/\n\n.is-head-left-logo .gh-head-inner {\n grid-template-columns: auto 1fr auto;\n}\n\n@media (min-width: 992px) {\n .is-head-left-logo .gh-head-menu {\n margin-right: 64px;\n margin-left: 16px;\n }\n}\n\n/*\n======================================================================\nHome About Collection LOGO Login Subscribe\n======================================================================\n*/\n\n.is-head-middle-logo .gh-head-inner {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.is-head-middle-logo .gh-head-brand {\n grid-column-start: 2;\n}\n\n.is-head-middle-logo .gh-head-actions {\n gap: 28px;\n}\n\n@media (min-width: 992px) {\n .is-head-middle-logo .gh-head-menu {\n margin-right: 64px;\n }\n}\n\n/*\n======================================================================\nSearch LOGO Login Subscribe\n Home About Collection Author Portal\n======================================================================\n*/\n\n.is-head-stacked .gh-head {\n position: relative;\n height: auto;\n}\n\n.is-head-stacked .gh-head-inner {\n grid-template-columns: 1fr auto 1fr;\n}\n\n.is-head-stacked .gh-head-brand {\n display: flex;\n grid-row-start: 1;\n grid-column-start: 2;\n min-height: 80px;\n}\n\n@media (max-width: 767px) {\n .is-head-stacked .gh-head-brand {\n min-height: unset;\n }\n}\n\n@media (min-width: 992px) {\n .is-head-stacked .gh-head-inner {\n padding: 0;\n }\n\n .is-head-stacked .gh-head-brand {\n display: flex;\n align-items: center;\n height: 80px;\n }\n\n .is-head-stacked .gh-head-menu {\n grid-row-start: 2;\n grid-column: 1 / 4;\n justify-content: center;\n height: 56px;\n margin: 0 48px;\n }\n\n .is-head-stacked .gh-head-menu::before,\n .is-head-stacked .gh-head-menu::after {\n position: absolute;\n top: 80px;\n left: 0;\n width: 100%;\n height: 1px;\n content: \"\";\n background-color: var(--color-light-gray);\n }\n\n .is-head-stacked .gh-head-menu::after {\n top: 136px;\n }\n\n .is-head-stacked .gh-head-actions {\n grid-row-start: 1;\n grid-column: 1 / 4;\n justify-content: space-between;\n }\n}\n\n/* Transparent header\n/* ---------------------------------------------------------- */\n\n.is-head-transparent .gh-head {\n position: absolute;\n right: 0;\n left: 0;\n z-index: 90;\n background-color: transparent;\n}\n\n.is-head-transparent .gh-head-logo,\n.is-head-transparent .gh-head-logo a,\n.is-head-transparent .gh-head .nav > li a,\n.is-head-transparent .gh-head-description,\n.is-head-transparent .gh-search,\n.is-head-transparent .gh-social,\n.is-head-transparent .nav-more-toggle,\n.is-head-transparent .gh-head-link {\n color: var(--color-white);\n}\n\n.is-head-transparent .gh-burger::before,\n.is-head-transparent .gh-burger::after {\n background-color: var(--color-white);\n}\n\n.is-head-transparent .gh-head-btn {\n color: #15171a;\n background-color: #fff;\n}\n\n.is-head-transparent .gh-head-menu::before,\n.is-head-transparent .gh-head-menu::after {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.is-head-transparent #announcement-bar-root {\n position: absolute;\n right: 0;\n left: 0;\n}\n\n.is-head-transparent #announcement-bar-root:not(:empty) + :is(.site, .gh-site) .gh-head {\n margin-top: 48px;\n}\n\n/* Dark header\n/* ---------------------------------------------------------- */\n\n.is-head-dark:not(.is-head-transparent) .gh-head {\n background-color: var(--color-darker-gray);\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-head-logo,\n.is-head-dark:not(.is-head-transparent) .gh-head-logo a,\n.is-head-dark:not(.is-head-transparent) .gh-head .nav a,\n.is-head-dark:not(.is-head-transparent) .gh-head-description,\n.is-head-dark:not(.is-head-transparent) .gh-search,\n.is-head-dark:not(.is-head-transparent) .gh-social,\n.is-head-dark:not(.is-head-transparent) .nav-more-toggle,\n.is-head-dark:not(.is-head-transparent) .gh-head-link {\n color: var(--color-white);\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-burger::before,\n.is-head-dark:not(.is-head-transparent) .gh-burger::after {\n background-color: var(--color-white);\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-head-btn {\n color: #15171a;\n background-color: #fff;\n}\n\n.is-head-dark:not(.is-head-transparent) .gh-head-menu::before,\n.is-head-dark:not(.is-head-transparent) .gh-head-menu::after {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n/* Brand header\n/* ---------------------------------------------------------- */\n\n.is-head-brand:not(.is-head-transparent) .gh-head {\n background-color: var(--ghost-accent-color);\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-head-logo,\n.is-head-brand:not(.is-head-transparent) .gh-head-logo a,\n.is-head-brand:not(.is-head-transparent) .gh-head .nav a,\n.is-head-brand:not(.is-head-transparent) .gh-head-description,\n.is-head-brand:not(.is-head-transparent) .gh-search,\n.is-head-brand:not(.is-head-transparent) .gh-social,\n.is-head-brand:not(.is-head-transparent) .nav-more-toggle,\n.is-head-brand:not(.is-head-transparent) .gh-head-link {\n color: var(--color-white);\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-burger::before,\n.is-head-brand:not(.is-head-transparent) .gh-burger::after {\n background-color: var(--color-white);\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-head-btn {\n color: #15171a;\n background-color: #fff;\n}\n\n.is-head-brand:not(.is-head-transparent) .gh-head-menu::before,\n.is-head-brand:not(.is-head-transparent) .gh-head-menu::after {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n/* Dropdown menu\n/* ---------------------------------------------------------- */\n\n.gh-dropdown {\n position: absolute;\n top: 100%;\n right: -16px;\n z-index: 90;\n width: 200px;\n padding: 12px 0;\n margin-top: 24px;\n text-align: left;\n visibility: hidden;\n background-color: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04), 0 7px 20px -5px rgba(0, 0, 0, 0.15);\n opacity: 0;\n transition: opacity 0.3s, transform 0.2s;\n transform: translate3d(0, 6px, 0);\n}\n\n.is-head-middle-logo .gh-dropdown {\n right: auto;\n left: -24px;\n}\n\n.is-dropdown-mega .gh-dropdown {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-auto-flow: column;\n column-gap: 40px;\n width: auto;\n padding: 20px 32px;\n}\n\n.is-dropdown-open .gh-dropdown {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.gh-dropdown li a {\n display: block;\n padding: 6px 20px;\n color: #15171a !important;\n}\n\n.is-dropdown-mega .gh-dropdown li a {\n padding: 8px 0;\n}\n\n/* Mobile menu\n/* ---------------------------------------------------------- */\n\n.gh-burger {\n position: relative;\n display: none;\n width: 30px;\n height: 30px;\n padding: 0;\n margin-right: -3px;\n appearance: none;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n}\n\n.gh-burger::before,\n.gh-burger::after {\n position: absolute;\n left: 3px;\n width: 24px;\n height: 1px;\n content: \"\";\n background-color: var(--color-darker-gray);\n transition: all 0.2s cubic-bezier(0.04, 0.04, 0.12, 0.96) 0.1008s;\n}\n\n.gh-burger::before {\n top: 11px;\n}\n\n.gh-burger::after {\n bottom: 11px;\n}\n\n.is-head-open .gh-burger::before {\n top: 15px;\n transform: rotate(45deg);\n}\n\n.is-head-open .gh-burger::after {\n bottom: 14px;\n transform: rotate(-45deg);\n}\n\n@media (max-width: 767px) {\n #gh-head {\n height: 64px;\n }\n\n #gh-head .gh-head-inner {\n grid-template-rows: auto 1fr auto;\n grid-template-columns: 1fr;\n gap: 48px;\n }\n\n #gh-head .gh-head-brand {\n display: grid;\n grid-template-columns: 1fr auto auto;\n grid-column-start: 1;\n align-items: center;\n height: 64px;\n }\n\n #gh-head .gh-head-logo {\n font-size: 2.2rem;\n }\n\n .gh-burger {\n display: block;\n }\n\n #gh-head .gh-head-menu,\n #gh-head .gh-head-actions {\n position: fixed;\n justify-content: center;\n visibility: hidden;\n opacity: 0;\n }\n\n #gh-head .gh-head-menu {\n transition: none;\n transform: translateY(0);\n }\n\n #gh-head .nav {\n gap: 20px;\n align-items: center;\n line-height: 1.4;\n }\n\n #gh-head .nav a {\n font-size: 2.6rem;\n font-weight: 600;\n text-transform: none;\n }\n\n #gh-head .nav li {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n #gh-head .gh-head-actions {\n text-align: center;\n }\n\n #gh-head :is(.gh-head-btn, .gh-head-link) {\n opacity: 0;\n transform: translateY(8px);\n }\n\n #gh-head .gh-head-btn {\n width: 100%;\n font-size: 1.8rem;\n text-transform: none;\n }\n\n #gh-head .gh-head-btn:not(.gh-btn) {\n font-size: 2rem;\n }\n\n #gh-main {\n transition: opacity 0.4s;\n }\n\n .is-head-open #gh-head {\n position: fixed;\n inset: 0;\n z-index: 3999999;\n height: 100%;\n overflow-y: scroll;\n -webkit-overflow-scrolling: touch;\n }\n\n .is-head-open:not(.is-head-brand):not(.is-head-dark):not(.is-head-transparent) #gh-head {\n background-color: var(--color-white);\n }\n\n .is-head-open.is-head-transparent #gh-head,\n .is-head-open:is(.is-head-transparent, .is-head-brand) #gh-head .gh-head-actions {\n background-color: var(--ghost-accent-color);\n }\n\n .is-head-open.is-head-dark #gh-head,\n .is-head-open.is-head-dark #gh-head .gh-head-actions {\n background-color: var(--color-darker-gray);\n }\n\n .is-head-open #gh-head .gh-head-menu,\n .is-head-open #gh-head .gh-head-actions {\n position: static;\n visibility: visible;\n opacity: 1;\n }\n\n .is-head-open #gh-head .nav {\n display: flex;\n flex-direction: column;\n }\n\n .is-head-open #gh-head .nav li {\n opacity: 1;\n transition: transform 0.2s, opacity 0.2s;\n transform: translateY(0);\n }\n\n .is-head-open #gh-head .gh-head-actions {\n position: sticky;\n right: 0;\n bottom: 0;\n left: 0;\n display: inline-flex;\n flex-direction: column;\n gap: 12px;\n align-items: center;\n padding: var(--gap) 0 calc(var(--gap) + 8px);\n background-color: var(--color-white);\n }\n\n .is-head-open #gh-head :is(.gh-head-btn, .gh-head-link) {\n opacity: 1;\n transition: transform 0.4s, opacity 0.4s;\n transition-delay: 0.2s;\n transform: translateY(0);\n }\n\n .is-head-open #gh-head .gh-head-link {\n transition-delay: 0.4s;\n }\n\n .is-head-open #gh-main {\n opacity: 0;\n }\n}\n",".gh-cover {\n position: relative;\n min-height: var(--cover-height, 50vh);\n padding-top: 6.4rem;\n padding-bottom: 6.4rem;\n}\n\n.gh-cover-image {\n position: absolute;\n inset: 0;\n z-index: -1;\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-cover-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-cover-description {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n",".has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-card-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n letter-spacing: -0.01em;\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-card-excerpt {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n",".gh-card {\n word-break: break-word;\n}\n",".page-template .gh-article-header {\n margin-top: var(--header-spacing, 80px);\n}\n\n.gh-article-tag {\n color: var(--ghost-accent-color);\n}\n\n.gh-article-title {\n word-break: break-word;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-article-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n letter-spacing: -0.01em;\n}\n\n.gh-article-excerpt {\n margin-top: 2rem;\n font-size: 2.1rem;\n line-height: 1.5;\n color: var(--color-secondary-text);\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-article-excerpt {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n.gh-article-image {\n grid-column: wide-start/wide-end;\n margin-top: 4rem;\n}\n\n.gh-article-image img {\n width: 100%;\n}\n\n@media (max-width: 767px) {\n .gh-article-excerpt {\n font-size: 1.9rem;\n }\n\n .gh-article-image {\n margin-top: 2.4rem;\n }\n}\n","/* Content refers to styling all page and post content that is\ncreated within the Ghost editor. The main content handles\nheadings, text, images and lists. We deal with cards lower down. */\n\n.gh-content {\n margin-top: 4rem;\n font-size: var(--content-font-size, 1.8rem);\n letter-spacing: var(--content-letter-spacing, 0);\n word-break: break-word;\n}\n\n/* Default vertical spacing */\n.gh-content > * + * {\n margin-top: calc(1.6em * var(--content-spacing-multiplier, 1));\n margin-bottom: 0;\n}\n\n/* [id] represents all headings h1-h6, reset all margins */\n.gh-content > [id] {\n margin: 0;\n}\n\n.gh-content > .kg-card + [id] {\n margin-top: calc(2em * var(--content-spacing-multiplier, 1)) !important;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .gh-content > [id] {\n font-family: var(--gh-font-heading, var(--font-serif));\n letter-spacing: -0.01em;\n}\n\n/* Add back a top margin to all headings, unless a heading\nis the very first element in the post content */\n.gh-content > [id]:not(:first-child) {\n margin-top: calc(1.6em * var(--content-spacing-multiplier, 1));\n}\n\n/* Add a small margin between a heading and anything after it */\n.gh-content > [id] + * {\n margin-top: calc(0.8em * var(--content-spacing-multiplier, 1));\n}\n\n/* A larger margin before/after HRs and blockquotes */\n.gh-content > hr,\n.gh-content > blockquote {\n position: relative;\n margin-top: calc(2.4em * var(--content-spacing-multiplier, 1));\n}\n\n.gh-content > hr + *,\n.gh-content > blockquote + * {\n margin-top: calc(2.4em * var(--content-spacing-multiplier, 1));\n}\n\n/* Now the content typography styles */\n.gh-content h2 {\n font-size: 1.6em;\n}\n\n.gh-content h3 {\n font-size: 1.4em;\n}\n\n.gh-content a {\n color: var(--ghost-accent-color);\n text-decoration: underline;\n word-break: break-word;\n}\n\n.gh-content .kg-callout-card .kg-callout-text,\n.gh-content .kg-toggle-card .kg-toggle-content > ol,\n.gh-content .kg-toggle-card .kg-toggle-content > ul,\n.gh-content .kg-toggle-card .kg-toggle-content > p {\n font-size: 0.95em;\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > blockquote,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > ol,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > ul,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > dl,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content > p,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-callout-text,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-toggle-content > ol,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-toggle-content > ul,\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .gh-content .kg-toggle-content > p {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n.gh-content ul,\n.gh-content ol,\n.gh-content dl {\n padding-left: 2.8rem;\n}\n\n.gh-content :is(li + li, li :is(ul, ol)) {\n margin-top: 0.8rem;\n}\n\n.gh-content ol ol li {\n list-style-type: lower-alpha;\n}\n\n.gh-content ol ol ol li {\n list-style-type: lower-roman;\n}\n\n.gh-content table:not(.gist table) {\n display: inline-block;\n width: auto;\n max-width: 100%;\n overflow-x: auto;\n font-family: var(--font-sans);\n font-size: 1.6rem;\n white-space: nowrap;\n vertical-align: top;\n border-spacing: 0;\n border-collapse: collapse;\n -webkit-overflow-scrolling: touch;\n background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;\n background-repeat: no-repeat;\n background-attachment: scroll, scroll;\n background-size: 10px 100%, 10px 100%;\n}\n\n.gh-content table:not(.gist table) td:first-child {\n background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n background-repeat: no-repeat;\n background-size: 20px 100%;\n}\n\n.gh-content table:not(.gist table) td:last-child {\n background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n background-repeat: no-repeat;\n background-position: 100% 0;\n background-size: 20px 100%;\n}\n\n.gh-content table:not(.gist table) th {\n font-size: 1.2rem;\n font-weight: 700;\n color: var(--color-darkgrey);\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.2px;\n background-color: var(--color-white);\n}\n\n.gh-content table:not(.gist table) th,\n.gh-content table:not(.gist table) td {\n padding: 6px 12px;\n border: 1px solid var(--color-light-gray);\n}\n\n/* Page without header */\n.page-template .gh-content:only-child {\n margin-top: 0 !important;\n}\n\n.page-template .gh-content:only-child > *:first-child:not(.kg-width-full) {\n margin-top: var(--header-spacing, 80px);\n}\n\n.page-template .gh-content > *:last-child:not(.kg-width-full) {\n margin-bottom: var(--footer-spacing, 0);\n}\n\n@media (max-width: 767px) {\n .gh-content {\n margin-top: 3.2rem;\n font-size: 1.7rem;\n }\n}\n",".gh-comments {\n margin-top: 64px;\n margin-bottom: -24px;\n}\n\n.gh-comments-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 40px;\n}\n\n.gh-comments .gh-comments-title {\n margin-bottom: 28px;\n}\n\n.gh-comments-header .gh-comments-title {\n margin-bottom: 0;\n}\n\n.gh-comments-count {\n color: var(--color-secondary-text);\n}\n",".gh-cta-gradient {\n position: relative;\n grid-column: full-start / full-end;\n height: 160px;\n margin-top: -16rem;\n margin-bottom: 4rem;\n content: \"\";\n background: linear-gradient(180deg, rgba(255, 255, 255, 0), var(--color-white));\n}\n\n.gh-cta-gradient:first-child {\n display: none;\n}\n\n.gh-cta {\n display: flex;\n flex-direction: column;\n margin-bottom: 4rem;\n text-align: center;\n}\n\n.gh-cta-title {\n margin-bottom: 3.2rem;\n font-size: 2.2rem;\n letter-spacing: -0.02em;\n}\n\n.gh-cta-actions {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.gh-cta-link {\n margin-top: 0.8rem;\n font-size: 1.4rem;\n color: var(--color-secondary-text);\n text-decoration: none;\n cursor: pointer;\n}\n\n.gh-cta-link:hover {\n color: var(--color-darker-gray);\n}\n\n@media (max-width: 767px) {\n .gh-cta-actions {\n column-gap: 0.8rem;\n }\n}\n","/* Add extra margin before/after any cards,\nexcept for when immediately preceeded by a heading */\n\n.gh-content :not(.kg-card):not(table):not([id]) + :is(.kg-card, table) {\n margin-top: calc(2em * var(--content-spacing-multiplier, 1));\n}\n\n.gh-content :is(.kg-card, table) + :not(.kg-card):not(table):not([id]) {\n margin-top: calc(2em * var(--content-spacing-multiplier, 1));\n}\n\n/* Remove space between full-width cards */\n.gh-content > .kg-width-full + .kg-width-full:not(.kg-width-full.kg-card-hascaption + .kg-width-full) {\n margin-top: 0;\n}\n\n/* Image\n/* ---------------------------------------------------------- */\n\n.kg-image {\n margin-right: auto;\n margin-left: auto;\n}\n\n/* Embed\n/* ---------------------------------------------------------- */\n\n.kg-embed-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n/* Gallery\n/* ---------------------------------------------------------- */\n\n.kg-image[width][height],\n.kg-gallery-image {\n cursor: pointer;\n}\n\n.kg-image-card a:hover,\n.kg-gallery-image a:hover {\n opacity: 1 !important;\n}\n\n/* Toggle\n/* ---------------------------------------------------------- */\n\n.kg-card.kg-toggle-card .kg-toggle-heading-text {\n font-size: 2rem;\n font-weight: 700;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .kg-toggle-card .kg-toggle-heading-text {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n/* Callout\n/* ---------------------------------------------------------- */\n\n.kg-callout-card.kg-card {\n border-radius: 0.25em;\n}\n\n.kg-callout-card-accent a {\n text-decoration: underline;\n}\n\n/* Blockquote\n/* ---------------------------------------------------------- */\n\nblockquote.kg-blockquote-alt {\n font-style: normal;\n font-weight: 400;\n color: var(--color-secondary-text);\n}\n\n/* Button\n/* ---------------------------------------------------------- */\n\n.kg-card.kg-button-card .kg-btn {\n font-size: 1em;\n}\n\n/* Header\n/* ---------------------------------------------------------- */\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .kg-card.kg-header-card h2.kg-header-card-header {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .kg-header-card h3.kg-header-card-subheader {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n/* Bookmark\n/* ---------------------------------------------------------- */\n\n.kg-bookmark-card a.kg-bookmark-container,\n.kg-bookmark-card a.kg-bookmark-container:hover,\n.kg-file-card-container,\n.kg-file-card-container:hover,\n.kg-audio-card,\n.kg-product-card-container {\n background: var(--background-color, #fff) !important;\n color: var(--color-darker-gray, #222) !important;\n opacity: 1;\n}\n\n.kg-bookmark-card .kg-bookmark-container {\n border-radius: 0.25em !important;\n}\n\n.kg-bookmark-card .kg-bookmark-content {\n padding: 1.15em;\n}\n\n.kg-bookmark-card .kg-bookmark-title {\n font-size: 0.9em;\n}\n\n.kg-bookmark-card .kg-bookmark-description {\n max-height: none;\n margin-top: 0.3em;\n font-size: 0.8em;\n}\n\n.kg-bookmark-card .kg-bookmark-metadata {\n font-size: 0.8em;\n}\n\n.kg-bookmark-card .kg-bookmark-thumbnail img {\n border-radius: 0 0.2em 0.2em 0;\n}\n\n/* Audio\n/* ---------------------------------------------------------- */\n\n.has-light-text .kg-audio-card button {\n color: #fff;\n}\n\n.has-light-text .kg-audio-card .kg-audio-volume-slider {\n color: rgb(255 255 255 / 0.3)\n}\n",".pagination {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n margin-top: 6.4rem;\n}\n\n.page-number {\n grid-column-start: 2;\n}\n\n.older-posts {\n text-align: right;\n}\n",".gh-navigation {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n column-gap: 2.4rem;\n align-items: center;\n}\n\n.gh-navigation > div {\n display: flex;\n align-items: center;\n}\n\n.gh-navigation-next {\n justify-content: flex-end;\n}\n\n.gh-navigation-link {\n display: inline-flex;\n align-items: center;\n}\n\n.gh-navigation-link svg {\n width: 16px;\n height: 16px;\n}\n\n.gh-navigation-previous svg {\n margin-right: 0.4rem;\n}\n\n.gh-navigation-next svg {\n margin-left: 0.4rem;\n}\n\n@media (max-width: 767px) {\n .gh-navigation-hide {\n display: none;\n }\n}\n",".gh-btn {\n display: inline-flex;\n gap: 0.4em;\n align-items: center;\n justify-content: center;\n padding: calc(0.75em * var(--multiplier, 1)) calc(1.15em * var(--multiplier, 1));\n font-size: 1.6rem;\n font-weight: 700;\n line-height: 1;\n color: var(--color-white);\n letter-spacing: inherit;\n cursor: pointer;\n background-color: var(--color-darker-gray);\n border: 0;\n border-radius: 100px;\n}\n\n.gh-btn:hover {\n opacity: 0.95;\n}\n\n.gh-post-upgrade-cta .gh-btn {\n line-height: inherit;\n}\n\n.gh-primary-btn {\n background-color: var(--ghost-accent-color);\n}\n\n.gh-outline-btn {\n color: var(--color-darker-gray);\n text-decoration: none;\n background-color: transparent;\n border: 1px solid var(--color-light-gray);\n}\n\n.gh-outline-btn:hover {\n border-color: var(--color-mid-gray);\n opacity: 1;\n}\n\n.gh-icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n padding: 0;\n color: var(--darker-gray-color);\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: none;\n}\n\n.gh-icon-btn svg {\n width: 20px;\n height: 20px;\n}\n\n.gh-text-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n color: var(--darker-gray-color);\n letter-spacing: inherit;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n outline: none;\n will-change: opacity;\n}\n\n.gh-text-btn:hover {\n opacity: 0.8;\n}\n",".gh-foot {\n padding-top: 8rem;\n padding-bottom: 8rem;\n color: var(--color-secondary-text);\n white-space: nowrap;\n}\n\n.gh-foot-inner {\n display: grid;\n grid-template-columns: 1fr auto 1fr;\n gap: 40px;\n font-size: 1.3rem;\n}\n\n.no-menu .gh-foot-inner {\n display: flex;\n flex-direction: column;\n gap: 24px;\n align-items: center;\n}\n\n.gh-foot-menu .nav {\n display: inline-flex;\n flex-wrap: wrap;\n row-gap: 4px;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.gh-foot-menu .nav li {\n display: flex;\n align-items: center;\n}\n\n.gh-foot-menu .nav li + li::before {\n padding: 0 1.2rem;\n font-size: 0.9rem;\n line-height: 0;\n content: \"•\";\n}\n\n.gh-powered-by {\n text-align: right;\n}\n\n.gh-foot a {\n color: var(--color-secondary-text);\n}\n\n.gh-foot a:hover {\n color: var(--color-darker-gray);\n opacity: 1;\n}\n\n@media (max-width: 767px) {\n .gh-foot {\n padding-top: 6.4rem;\n padding-bottom: 12rem;\n }\n\n .gh-foot-inner {\n grid-template-columns: 1fr;\n text-align: center;\n }\n\n .gh-foot-menu .nav {\n flex-direction: column;\n }\n\n .gh-foot-menu .nav li + li {\n margin-top: 0.4rem;\n }\n\n .gh-foot-menu .nav li + li::before {\n display: none;\n }\n\n .gh-powered-by {\n text-align: center;\n }\n}\n",".pswp {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 3999999;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n -ms-touch-action: none;\n touch-action: none;\n outline: none;\n backface-visibility: hidden;\n -webkit-text-size-adjust: 100%;\n}\n\n.pswp img {\n max-width: none;\n}\n\n.pswp--animate_opacity {\n opacity: 0.001;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n will-change: opacity;\n}\n\n.pswp--open {\n display: block;\n}\n\n.pswp--zoom-allowed .pswp__img {\n cursor: zoom-in;\n}\n\n.pswp--zoomed-in .pswp__img {\n cursor: grab;\n}\n\n.pswp--dragging .pswp__img {\n cursor: grabbing;\n}\n\n.pswp__bg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.85);\n opacity: 0;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n transform: translateZ(0);\n backface-visibility: hidden;\n will-change: opacity;\n}\n\n.pswp__scroll-wrap {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.pswp__container,\n.pswp__zoom-wrap {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n touch-action: none;\n backface-visibility: hidden;\n}\n\n.pswp__container,\n.pswp__img {\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n}\n\n.pswp__zoom-wrap {\n position: absolute;\n width: 100%;\n transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1);\n transform-origin: left top;\n}\n\n.pswp--animated-in .pswp__bg,\n.pswp--animated-in .pswp__zoom-wrap {\n transition: none;\n}\n\n.pswp__item {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n}\n\n.pswp__img {\n position: absolute;\n top: 0;\n left: 0;\n width: auto;\n height: auto;\n}\n\n.pswp__img--placeholder {\n backface-visibility: hidden;\n}\n\n.pswp__img--placeholder--blank {\n background: var(--color-black);\n}\n\n.pswp--ie .pswp__img {\n top: 0;\n left: 0;\n width: 100% !important;\n height: auto !important;\n}\n\n.pswp__error-msg {\n position: absolute;\n top: 50%;\n left: 0;\n width: 100%;\n margin-top: -8px;\n font-size: 14px;\n line-height: 16px;\n color: var(--color-secondary-text);\n text-align: center;\n}\n\n.pswp__error-msg a {\n color: var(--color-secondary-text);\n text-decoration: underline;\n}\n\n.pswp__button {\n position: relative;\n display: block;\n float: right;\n width: 44px;\n height: 44px;\n padding: 0;\n margin: 0;\n overflow: visible;\n appearance: none;\n cursor: pointer;\n background: none;\n border: 0;\n box-shadow: none;\n transition: opacity 0.2s;\n}\n\n.pswp__button:focus,\n.pswp__button:hover {\n opacity: 1;\n}\n\n.pswp__button:active {\n outline: none;\n opacity: 0.9;\n}\n\n.pswp__button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n\n.pswp__ui--over-close .pswp__button--close {\n opacity: 1;\n}\n\n.pswp__button,\n.pswp__button--arrow--left::before,\n.pswp__button--arrow--right::before {\n width: 44px;\n height: 44px;\n background: url(\"../images/default-skin.png\") 0 0 no-repeat;\n background-size: 264px 88px;\n}\n\n@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {\n .pswp--svg .pswp__button,\n .pswp--svg .pswp__button--arrow--left::before,\n .pswp--svg .pswp__button--arrow--right::before {\n background-image: url(\"../images/default-skin.svg\");\n }\n\n .pswp--svg .pswp__button--arrow--left,\n .pswp--svg .pswp__button--arrow--right {\n background: none;\n }\n}\n\n.pswp__button--close {\n background-position: 0 -44px;\n}\n\n.pswp__button--share {\n background-position: -44px -44px;\n}\n\n.pswp__button--fs {\n display: none;\n}\n\n.pswp--supports-fs .pswp__button--fs {\n display: block;\n}\n\n.pswp--fs .pswp__button--fs {\n background-position: -44px 0;\n}\n\n.pswp__button--zoom {\n display: none;\n background-position: -88px 0;\n}\n\n.pswp--zoom-allowed .pswp__button--zoom {\n display: block;\n}\n\n.pswp--zoomed-in .pswp__button--zoom {\n background-position: -132px 0;\n}\n\n.pswp--touch .pswp__button--arrow--left,\n.pswp--touch .pswp__button--arrow--right {\n visibility: hidden;\n}\n\n.pswp__button--arrow--left,\n.pswp__button--arrow--right {\n position: absolute;\n top: 50%;\n width: 70px;\n height: 100px;\n margin-top: -50px;\n background: none;\n}\n\n.pswp__button--arrow--left {\n left: 0;\n}\n\n.pswp__button--arrow--right {\n right: 0;\n}\n\n.pswp__button--arrow--left::before,\n.pswp__button--arrow--right::before {\n position: absolute;\n top: 35px;\n width: 32px;\n height: 30px;\n content: \"\";\n}\n\n.pswp__button--arrow--left::before {\n left: 6px;\n background-position: -138px -44px;\n}\n\n.pswp__button--arrow--right::before {\n right: 6px;\n background-position: -94px -44px;\n}\n\n.pswp__counter {\n position: absolute;\n top: 0;\n left: 0;\n height: 44px;\n padding: 0 15px;\n font-size: 11px;\n font-weight: 700;\n line-height: 44px;\n color: var(--color-white);\n user-select: none;\n}\n\n.pswp__caption {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n min-height: 44px;\n}\n\n.pswp__caption__center {\n max-width: 420px;\n padding: 25px 15px 30px;\n margin: 0 auto;\n font-size: 11px;\n line-height: 1.6;\n color: var(--color-white);\n text-align: center;\n}\n\n.pswp__caption__center .post-caption-title {\n margin-bottom: 7px;\n font-size: 15px;\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.pswp__caption__center .post-caption-meta-item + .post-caption-meta-item::before {\n padding: 0 4px;\n content: \"\\02022\";\n}\n\n.pswp__caption--empty {\n display: none;\n}\n\n.pswp__caption--fake {\n visibility: hidden;\n}\n\n.pswp__preloader {\n position: absolute;\n top: 0;\n left: 50%;\n width: 44px;\n height: 44px;\n margin-left: -22px;\n opacity: 0;\n transition: opacity 0.25s ease-out;\n direction: ltr;\n will-change: opacity;\n}\n\n.pswp__preloader__icn {\n width: 20px;\n height: 20px;\n margin: 12px;\n}\n\n.pswp__preloader--active {\n opacity: 1;\n}\n\n.pswp__preloader--active .pswp__preloader__icn {\n background: url(\"../images/preloader.gif\") 0 0 no-repeat;\n}\n\n.pswp--css_animation .pswp__preloader--active {\n opacity: 1;\n}\n\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {\n animation: clockwise 500ms linear infinite;\n}\n\n.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {\n animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;\n}\n\n.pswp--css_animation .pswp__preloader__icn {\n position: absolute;\n top: 15px;\n left: 15px;\n width: 14px;\n height: 14px;\n margin: 0;\n background: none;\n opacity: 0.75;\n}\n\n.pswp--css_animation .pswp__preloader__cut {\n position: relative;\n width: 7px;\n height: 14px;\n overflow: hidden;\n}\n\n.pswp--css_animation .pswp__preloader__donut {\n position: absolute;\n top: 0;\n left: 0;\n box-sizing: border-box;\n width: 14px;\n height: 14px;\n margin: 0;\n background: none;\n border: 2px solid var(--color-white);\n border-bottom-color: transparent;\n border-left-color: transparent;\n border-radius: 50%;\n}\n\n@media screen and (max-width: 1024px) {\n .pswp__preloader {\n position: relative;\n top: auto;\n left: auto;\n float: right;\n margin: 0;\n }\n}\n\n@keyframes clockwise {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes donut-rotate {\n 0% {\n transform: rotate(0);\n }\n\n 50% {\n transform: rotate(-140deg);\n }\n\n 100% {\n transform: rotate(0);\n }\n}\n\n.pswp__ui {\n z-index: 1550;\n visibility: visible;\n opacity: 1;\n -webkit-font-smoothing: auto;\n}\n\n.pswp__top-bar {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 44px;\n}\n\n.pswp__caption,\n.pswp__top-bar,\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n backface-visibility: hidden;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n will-change: opacity;\n}\n\n.pswp--has_mouse .pswp__button--arrow--left,\n.pswp--has_mouse .pswp__button--arrow--right {\n visibility: visible;\n}\n\n.pswp__ui--idle .pswp__top-bar {\n opacity: 0;\n}\n\n.pswp__ui--idle .pswp__button--arrow--left,\n.pswp__ui--idle .pswp__button--arrow--right {\n opacity: 0;\n}\n\n.pswp__ui--hidden .pswp__top-bar,\n.pswp__ui--hidden .pswp__caption,\n.pswp__ui--hidden .pswp__button--arrow--left,\n.pswp__ui--hidden .pswp__button--arrow--right {\n opacity: 0.001;\n}\n\n.pswp__ui--one-slide .pswp__button--arrow--left,\n.pswp__ui--one-slide .pswp__button--arrow--right,\n.pswp__ui--one-slide .pswp__counter {\n display: none;\n}\n\n.pswp__element--disabled {\n display: none !important;\n}\n\n.pswp--minimal--dark .pswp__top-bar {\n background: none;\n}\n","@font-face {\n font-family: Mulish;\n font-style: normal;\n font-weight: 400;\n src: local(\"\"), url(\"../fonts/mulish-v10-latin-regular.woff2\") format(\"woff2\"), url(\"../fonts/mulish-v10-latin-regular.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Mulish;\n font-style: normal;\n font-weight: 600;\n src: local(\"\"), url(\"../fonts/mulish-v10-latin-600.woff2\") format(\"woff2\"), url(\"../fonts/mulish-v10-latin-600.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Mulish;\n font-style: normal;\n font-weight: 700;\n src: local(\"\"), url(\"../fonts/mulish-v10-latin-700.woff2\") format(\"woff2\"), url(\"../fonts/mulish-v10-latin-700.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Mulish;\n font-style: normal;\n font-weight: 800;\n src: local(\"\"), url(\"../fonts/mulish-v10-latin-800.woff2\") format(\"woff2\"), url(\"../fonts/mulish-v10-latin-800.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Mulish;\n font-style: italic;\n font-weight: 400;\n src: local(\"\"), url(\"../fonts/mulish-v10-latin-italic.woff2\") format(\"woff2\"), url(\"../fonts/mulish-v10-latin-italic.woff\") format(\"woff\");\n}\n\n@font-face {\n font-family: Mulish;\n font-style: italic;\n font-weight: 700;\n src: local(\"\"), url(\"../fonts/mulish-v10-latin-700italic.woff2\") format(\"woff2\"), url(\"../fonts/mulish-v10-latin-700italic.woff\") format(\"woff\");\n}\n","/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n /* Colours */\n --color-primary: var(--ghost-accent-color, #3eb0ef);\n --color-base: #131313;\n --color-border: #ddd;\n\n /* Fonts */\n --font-sans: Mulish, sans-serif;\n --font-serif: Georgia, Times, serif;\n --font-mono: Menlo, Courier, monospace;\n --font-light: 100;\n --font-normal: 400;\n --font-bold: 700;\n --font-heavy: 800;\n\n /* Breakpoints */\n --xlarge: 1680px;\n --large: 1280px;\n --medium: 980px;\n --small: 740px;\n --xsmall: 480px;\n\n /* Sizes */\n --height: 4rem;\n --margin: 2rem;\n --radius: 0.5rem;\n --header-spacing: max(6vw, 64px);\n}\n","/*\n\nThis is a development CSS file which is built to a minified\nproduction stylesheet in assets/built/screen.css using gulp dev\n\n*/\n\n/* Lib - Local component imports\n/* ---------------------------------------------------------- */\n@import \"@tryghost/shared-theme-assets/assets/css/v1/screen.css\";\n@import \"fonts.css\";\n@import \"vars.css\";\n\n/* Main - Theme styles\n/* ---------------------------------------------------------- */\n\n.img {\n display: block;\n width: 100%;\n height: 100%;\n background-position: center center;\n background-size: cover;\n border-radius: 100%;\n}\n\n.hidden {\n position: absolute;\n text-indent: -9999px;\n visibility: hidden;\n}\n\n/* Layout\n/* ---------------------------------------------------------- */\n\n.gh-canvas {\n margin-right: calc(var(--gap) * -1);\n margin-left: calc(var(--gap) * -1);\n}\n\n.site-wrapper {\n min-height: 100vh;\n padding: 0 3vw;\n}\n\n@media (max-width: 850px) {\n .site-wrapper {\n padding: 6vw;\n }\n}\n\n.page-head {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 60%;\n padding: 12vw 0;\n margin: auto;\n text-align: center;\n}\n\n.page-head-title {\n margin: 0;\n font-size: 5rem;\n font-weight: 800;\n line-height: 1.3;\n color: var(--color-base);\n word-break: break-word;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .page-head-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n@media (max-width: 500px) {\n .page-head {\n max-width: none;\n padding: 20vw 0;\n }\n\n .page-head-title {\n font-size: 2.4rem;\n }\n}\n\n.page-head-description {\n margin: 16px 0;\n font-size: 2.2rem;\n line-height: 1.35em;\n color: var(--color-base);\n opacity: 0.5;\n}\n\n@media (max-width: 500px) {\n .page-head-description {\n font-size: 1.6rem;\n }\n}\n\n/* Site Navigation\n/* ---------------------------------------------------------- */\n\n.gh-head-logo {\n font-size: 2.1rem;\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n.gh-head-menu,\n.gh-head-actions {\n font-size: 1.4rem;\n font-weight: 600;\n}\n\n@media (max-width: 850px) {\n body:not(.is-head-open) .gh-head {\n margin: -6vw;\n }\n}\n\n/* Post Feed\n/* ---------------------------------------------------------- */\n\n.post-feed {\n display: flex;\n flex-wrap: wrap;\n}\n\n.post-card {\n position: relative;\n display: flex;\n flex: 1 1 50%;\n height: 35vw;\n overflow: hidden;\n counter-increment: posts;\n background: linear-gradient(135deg, #1f1f1f 0%, #111 100%) center center;\n background-size: cover;\n}\n\n@media (max-width: 700px) {\n .post-card {\n flex: 1 1 100%;\n height: 70vw;\n }\n}\n\n.post-card-large {\n flex: 1 1 100%;\n}\n\n.post-card-link {\n position: relative;\n display: block;\n flex: 1 1 auto;\n}\n\n.post-card-link:hover {\n opacity: 1;\n}\n\n.post-card-link img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.post-card-content {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n color: #fff;\n background: rgba(0, 0, 0, 0.4);\n opacity: 1;\n transition: opacity 0.5s cubic-bezier(0.33, 0, 0.2, 1);\n}\n\n.post-card:not(.no-image) .post-card-content {\n opacity: 0;\n}\n\n@media (max-width: 700px) {\n .post-card:not(.no-image) .post-card-content {\n opacity: 1;\n }\n}\n\n.post-card-link:hover .post-card-content {\n opacity: 1;\n}\n\n.post-card-title {\n display: inline-block;\n max-width: 70%;\n margin: 0;\n font-size: 3.4rem;\n font-weight: 800;\n color: var(--color-white);\n text-align: center;\n word-break: break-word;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .post-card-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n/* Posts without images */\n.post-card.no-image::before {\n position: absolute;\n right: 5vw;\n bottom: -0.15em;\n display: block;\n font-size: 28vw;\n font-weight: var(--font-heavy);\n line-height: 1em;\n color: rgba(255, 255, 255, 0.1);\n letter-spacing: -0.05em;\n content: counter(posts);\n}\n\n.post-card.no-image .post-card-content {\n align-items: flex-start;\n justify-content: flex-start;\n padding: 4vw;\n}\n\n.post-card.no-image .post-card-title {\n line-height: 1.15em;\n text-align: left;\n}\n\n.post-card.no-image:hover .post-card-title {\n text-decoration: underline;\n}\n\n@media (max-width: 700px) {\n .post-card.no-image::before {\n font-size: 50vw;\n }\n}\n\n/* Post Content\n/* ---------------------------------------------------------- */\n\n.post-content {\n padding-top: max(6vw, 64px);\n margin: 0 auto;\n}\n\n.page-template .post-content {\n padding-top: 0;\n}\n\n.page-template .post-content-header {\n margin-top: var(--header-spacing);\n}\n\n.post-content-title {\n margin: 0 0 16px;\n font-weight: 800;\n line-height: 1.1;\n color: var(--color-base);\n text-align: center;\n word-break: break-word;\n}\n\n.has-serif-title:not([class*=\" gh-font-heading\"]):not([class^=\"gh-font-heading\"]) .post-content-title {\n font-family: var(--gh-font-heading, var(--font-serif));\n}\n\n.post-content-excerpt {\n font-size: 2rem;\n line-height: 1.6em;\n color: var(--color-base);\n text-align: center;\n word-break: break-word;\n opacity: 0.5;\n}\n\n.has-serif-body:not([class*=\" gh-font-body\"]):not([class^=\"gh-font-body\"]) .post-content-excerpt {\n font-family: var(--gh-font-body, var(--font-serif));\n}\n\n@media (max-width: 500px) {\n .post-content-excerpt {\n font-size: 1.8rem;\n }\n}\n\n.post-content-image {\n margin: 40px 0 2vw;\n}\n\n.post-content-image .kg-image {\n width: 100%;\n}\n\n@media (max-width: 960px) {\n .post-content-image .kg-image {\n width: 88vw;\n }\n}\n\n.post-content-comments {\n margin-top: 64px;\n}\n\n/* Author Archive\n/* ---------------------------------------------------------- */\n\n.author-meta {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 10px;\n}\n\n.author-links {\n display: flex;\n align-items: center;\n margin-top: 20px;\n}\n\n.author-links a {\n display: block;\n padding: 0 12px;\n margin: 0;\n color: var(--color-base);\n opacity: 0.4;\n}\n\n.author-links a:hover {\n text-decoration: none;\n opacity: 1;\n}\n\n.author-links .divider {\n display: inline-block;\n margin: 0 3px;\n}\n"]} -------------------------------------------------------------------------------- /assets/css/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: Mulish; 3 | font-style: normal; 4 | font-weight: 400; 5 | src: local(""), url("../fonts/mulish-v10-latin-regular.woff2") format("woff2"), url("../fonts/mulish-v10-latin-regular.woff") format("woff"); 6 | } 7 | 8 | @font-face { 9 | font-family: Mulish; 10 | font-style: normal; 11 | font-weight: 600; 12 | src: local(""), url("../fonts/mulish-v10-latin-600.woff2") format("woff2"), url("../fonts/mulish-v10-latin-600.woff") format("woff"); 13 | } 14 | 15 | @font-face { 16 | font-family: Mulish; 17 | font-style: normal; 18 | font-weight: 700; 19 | src: local(""), url("../fonts/mulish-v10-latin-700.woff2") format("woff2"), url("../fonts/mulish-v10-latin-700.woff") format("woff"); 20 | } 21 | 22 | @font-face { 23 | font-family: Mulish; 24 | font-style: normal; 25 | font-weight: 800; 26 | src: local(""), url("../fonts/mulish-v10-latin-800.woff2") format("woff2"), url("../fonts/mulish-v10-latin-800.woff") format("woff"); 27 | } 28 | 29 | @font-face { 30 | font-family: Mulish; 31 | font-style: italic; 32 | font-weight: 400; 33 | src: local(""), url("../fonts/mulish-v10-latin-italic.woff2") format("woff2"), url("../fonts/mulish-v10-latin-italic.woff") format("woff"); 34 | } 35 | 36 | @font-face { 37 | font-family: Mulish; 38 | font-style: italic; 39 | font-weight: 700; 40 | src: local(""), url("../fonts/mulish-v10-latin-700italic.woff2") format("woff2"), url("../fonts/mulish-v10-latin-700italic.woff") format("woff"); 41 | } 42 | -------------------------------------------------------------------------------- /assets/css/screen.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | This is a development CSS file which is built to a minified 4 | production stylesheet in assets/built/screen.css using gulp dev 5 | 6 | */ 7 | 8 | /* Lib - Local component imports 9 | /* ---------------------------------------------------------- */ 10 | @import "@tryghost/shared-theme-assets/assets/css/v1/screen.css"; 11 | @import "fonts.css"; 12 | @import "vars.css"; 13 | 14 | /* Main - Theme styles 15 | /* ---------------------------------------------------------- */ 16 | 17 | .img { 18 | display: block; 19 | width: 100%; 20 | height: 100%; 21 | background-position: center center; 22 | background-size: cover; 23 | border-radius: 100%; 24 | } 25 | 26 | .hidden { 27 | position: absolute; 28 | text-indent: -9999px; 29 | visibility: hidden; 30 | } 31 | 32 | /* Layout 33 | /* ---------------------------------------------------------- */ 34 | 35 | .gh-canvas { 36 | margin-right: calc(var(--gap) * -1); 37 | margin-left: calc(var(--gap) * -1); 38 | } 39 | 40 | .site-wrapper { 41 | min-height: 100vh; 42 | padding: 0 3vw; 43 | } 44 | 45 | @media (max-width: 850px) { 46 | .site-wrapper { 47 | padding: 6vw; 48 | } 49 | } 50 | 51 | .page-head { 52 | display: flex; 53 | flex-direction: column; 54 | align-items: center; 55 | justify-content: center; 56 | max-width: 60%; 57 | padding: 12vw 0; 58 | margin: auto; 59 | text-align: center; 60 | } 61 | 62 | .page-head-title { 63 | margin: 0; 64 | font-size: 5rem; 65 | font-weight: 800; 66 | line-height: 1.3; 67 | color: var(--color-base); 68 | word-break: break-word; 69 | } 70 | 71 | .has-serif-title:not([class*=" gh-font-heading"]):not([class^="gh-font-heading"]) .page-head-title { 72 | font-family: var(--gh-font-heading, var(--font-serif)); 73 | } 74 | 75 | @media (max-width: 500px) { 76 | .page-head { 77 | max-width: none; 78 | padding: 20vw 0; 79 | } 80 | 81 | .page-head-title { 82 | font-size: 2.4rem; 83 | } 84 | } 85 | 86 | .page-head-description { 87 | margin: 16px 0; 88 | font-size: 2.2rem; 89 | line-height: 1.35em; 90 | color: var(--color-base); 91 | opacity: 0.5; 92 | } 93 | 94 | @media (max-width: 500px) { 95 | .page-head-description { 96 | font-size: 1.6rem; 97 | } 98 | } 99 | 100 | /* Site Navigation 101 | /* ---------------------------------------------------------- */ 102 | 103 | .gh-head-logo { 104 | font-size: 2.1rem; 105 | text-transform: uppercase; 106 | letter-spacing: 1px; 107 | } 108 | 109 | .gh-head-menu, 110 | .gh-head-actions { 111 | font-size: 1.4rem; 112 | font-weight: 600; 113 | } 114 | 115 | @media (max-width: 850px) { 116 | body:not(.is-head-open) .gh-head { 117 | margin: -6vw; 118 | } 119 | } 120 | 121 | /* Post Feed 122 | /* ---------------------------------------------------------- */ 123 | 124 | .post-feed { 125 | display: flex; 126 | flex-wrap: wrap; 127 | } 128 | 129 | .post-card { 130 | position: relative; 131 | display: flex; 132 | flex: 1 1 50%; 133 | height: 35vw; 134 | overflow: hidden; 135 | counter-increment: posts; 136 | background: linear-gradient(135deg, #1f1f1f 0%, #111 100%) center center; 137 | background-size: cover; 138 | } 139 | 140 | @media (max-width: 700px) { 141 | .post-card { 142 | flex: 1 1 100%; 143 | height: 70vw; 144 | } 145 | } 146 | 147 | .post-card-large { 148 | flex: 1 1 100%; 149 | } 150 | 151 | .post-card-link { 152 | position: relative; 153 | display: block; 154 | flex: 1 1 auto; 155 | } 156 | 157 | .post-card-link:hover { 158 | opacity: 1; 159 | } 160 | 161 | .post-card-link img { 162 | position: absolute; 163 | inset: 0; 164 | width: 100%; 165 | height: 100%; 166 | object-fit: cover; 167 | } 168 | 169 | .post-card-content { 170 | position: absolute; 171 | top: 0; 172 | right: 0; 173 | bottom: 0; 174 | left: 0; 175 | display: flex; 176 | flex: 1 1 auto; 177 | align-items: center; 178 | justify-content: center; 179 | color: #fff; 180 | background: rgba(0, 0, 0, 0.4); 181 | opacity: 1; 182 | transition: opacity 0.5s cubic-bezier(0.33, 0, 0.2, 1); 183 | } 184 | 185 | .post-card:not(.no-image) .post-card-content { 186 | opacity: 0; 187 | } 188 | 189 | @media (max-width: 700px) { 190 | .post-card:not(.no-image) .post-card-content { 191 | opacity: 1; 192 | } 193 | } 194 | 195 | .post-card-link:hover .post-card-content { 196 | opacity: 1; 197 | } 198 | 199 | .post-card-title { 200 | display: inline-block; 201 | max-width: 70%; 202 | margin: 0; 203 | font-size: 3.4rem; 204 | font-weight: 800; 205 | color: var(--color-white); 206 | text-align: center; 207 | word-break: break-word; 208 | } 209 | 210 | .has-serif-title:not([class*=" gh-font-heading"]):not([class^="gh-font-heading"]) .post-card-title { 211 | font-family: var(--gh-font-heading, var(--font-serif)); 212 | } 213 | 214 | /* Posts without images */ 215 | .post-card.no-image::before { 216 | position: absolute; 217 | right: 5vw; 218 | bottom: -0.15em; 219 | display: block; 220 | font-size: 28vw; 221 | font-weight: var(--font-heavy); 222 | line-height: 1em; 223 | color: rgba(255, 255, 255, 0.1); 224 | letter-spacing: -0.05em; 225 | content: counter(posts); 226 | } 227 | 228 | .post-card.no-image .post-card-content { 229 | align-items: flex-start; 230 | justify-content: flex-start; 231 | padding: 4vw; 232 | } 233 | 234 | .post-card.no-image .post-card-title { 235 | line-height: 1.15em; 236 | text-align: left; 237 | } 238 | 239 | .post-card.no-image:hover .post-card-title { 240 | text-decoration: underline; 241 | } 242 | 243 | @media (max-width: 700px) { 244 | .post-card.no-image::before { 245 | font-size: 50vw; 246 | } 247 | } 248 | 249 | /* Post Content 250 | /* ---------------------------------------------------------- */ 251 | 252 | .post-content { 253 | padding-top: max(6vw, 64px); 254 | margin: 0 auto; 255 | } 256 | 257 | .page-template .post-content { 258 | padding-top: 0; 259 | } 260 | 261 | .page-template .post-content-header { 262 | margin-top: var(--header-spacing); 263 | } 264 | 265 | .post-content-title { 266 | margin: 0 0 16px; 267 | font-weight: 800; 268 | line-height: 1.1; 269 | color: var(--color-base); 270 | text-align: center; 271 | word-break: break-word; 272 | } 273 | 274 | .has-serif-title:not([class*=" gh-font-heading"]):not([class^="gh-font-heading"]) .post-content-title { 275 | font-family: var(--gh-font-heading, var(--font-serif)); 276 | } 277 | 278 | .post-content-excerpt { 279 | font-size: 2rem; 280 | line-height: 1.6em; 281 | color: var(--color-base); 282 | text-align: center; 283 | word-break: break-word; 284 | opacity: 0.5; 285 | } 286 | 287 | .has-serif-body:not([class*=" gh-font-body"]):not([class^="gh-font-body"]) .post-content-excerpt { 288 | font-family: var(--gh-font-body, var(--font-serif)); 289 | } 290 | 291 | @media (max-width: 500px) { 292 | .post-content-excerpt { 293 | font-size: 1.8rem; 294 | } 295 | } 296 | 297 | .post-content-image { 298 | margin: 40px 0 2vw; 299 | } 300 | 301 | .post-content-image .kg-image { 302 | width: 100%; 303 | } 304 | 305 | @media (max-width: 960px) { 306 | .post-content-image .kg-image { 307 | width: 88vw; 308 | } 309 | } 310 | 311 | .post-content-comments { 312 | margin-top: 64px; 313 | } 314 | 315 | /* Author Archive 316 | /* ---------------------------------------------------------- */ 317 | 318 | .author-meta { 319 | display: flex; 320 | align-items: center; 321 | justify-content: center; 322 | margin-bottom: 10px; 323 | } 324 | 325 | .author-links { 326 | display: flex; 327 | align-items: center; 328 | margin-top: 20px; 329 | } 330 | 331 | .author-links a { 332 | display: block; 333 | padding: 0 12px; 334 | margin: 0; 335 | color: var(--color-base); 336 | opacity: 0.4; 337 | } 338 | 339 | .author-links a:hover { 340 | text-decoration: none; 341 | opacity: 1; 342 | } 343 | 344 | .author-links .divider { 345 | display: inline-block; 346 | margin: 0 3px; 347 | } 348 | -------------------------------------------------------------------------------- /assets/css/vars.css: -------------------------------------------------------------------------------- 1 | /* Variables 2 | /* ---------------------------------------------------------- */ 3 | 4 | :root { 5 | /* Colours */ 6 | --color-primary: var(--ghost-accent-color, #3eb0ef); 7 | --color-base: #131313; 8 | --color-border: #ddd; 9 | 10 | /* Fonts */ 11 | --font-sans: Mulish, sans-serif; 12 | --font-serif: Georgia, Times, serif; 13 | --font-mono: Menlo, Courier, monospace; 14 | --font-light: 100; 15 | --font-normal: 400; 16 | --font-bold: 700; 17 | --font-heavy: 800; 18 | 19 | /* Breakpoints */ 20 | --xlarge: 1680px; 21 | --large: 1280px; 22 | --medium: 980px; 23 | --small: 740px; 24 | --xsmall: 480px; 25 | 26 | /* Sizes */ 27 | --height: 4rem; 28 | --margin: 2rem; 29 | --radius: 0.5rem; 30 | --header-spacing: max(6vw, 64px); 31 | } 32 | -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-600.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-600.woff -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-600.woff2 -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-700.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-700.woff -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-700.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-700.woff2 -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-700italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-700italic.woff -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-700italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-700italic.woff2 -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-800.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-800.woff -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-800.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-800.woff2 -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-italic.woff -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-italic.woff2 -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-regular.woff -------------------------------------------------------------------------------- /assets/fonts/mulish-v10-latin-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/fonts/mulish-v10-latin-regular.woff2 -------------------------------------------------------------------------------- /assets/images/default-skin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/images/default-skin.png -------------------------------------------------------------------------------- /assets/images/default-skin.svg: -------------------------------------------------------------------------------- 1 | default-skin 2 -------------------------------------------------------------------------------- /assets/images/preloader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TryGhost/London/ee9d01d0df3e07e91f9b153086a2549e365976d5/assets/images/preloader.gif -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | pagination(true); 3 | })(); 4 | -------------------------------------------------------------------------------- /author.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | {{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}} 3 | 4 | {{#author}} 5 | {{!-- Everything inside the #author tags pulls data from the author --}} 6 |
7 |

{{name}}

8 | {{#if bio}} 9 |

10 | {{bio}} 11 |

12 | {{/if}} 13 |
14 | 47 |
48 |
49 | {{/author}} 50 | 51 |
52 | {{#foreach posts}} 53 | {{> "post-card"}} 54 | {{/foreach}} 55 |
56 | 57 | -------------------------------------------------------------------------------- /default.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{!-- Document Settings --}} 6 | 7 | 8 | 9 | {{!-- Base Meta --}} 10 | {{meta_title}} 11 | 12 | 13 | 14 | {{!-- Styles'n'Scripts --}} 15 | 16 | 17 | {{!-- This tag outputs SEO meta+structured data and other important settings --}} 18 | {{ghost_head}} 19 | 20 | 21 | 22 |
23 | 24 |
25 |
26 | 39 | 40 | 48 | 49 |
50 | {{#unless @site.members_enabled}} 51 | {{^match @custom.navigation_layout "Stacked"}} 52 | 53 | {{/match}} 54 | {{else}} 55 | 56 |
57 | {{#unless @member}} 58 | {{#unless @site.members_invite_only}} 59 | Sign in 60 | Subscribe 61 | {{else}} 62 | Sign in 63 | {{/unless}} 64 | {{else}} 65 | Account 66 | {{/unless}} 67 |
68 | {{/unless}} 69 |
70 |
71 |
72 | 73 |
74 | {{{body}}} 75 |
76 | 77 |
78 |
79 | 82 | {{#if @site.secondary_navigation}} 83 | 86 | {{/if}} 87 |
88 | Powered by Ghost 89 |
90 |
91 |
92 | 93 |
94 | 95 | {{#is "post, page"}} 96 | {{> "pswp"}} 97 | {{/is}} 98 | 99 | 100 | 101 | {{ghost_foot}} 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | const {series, parallel, watch, src, dest} = require('gulp'); 2 | const pump = require('pump'); 3 | const fs = require('fs'); 4 | const order = require('ordered-read-streams'); 5 | 6 | // gulp plugins and utils 7 | const livereload = require('gulp-livereload'); 8 | const postcss = require('gulp-postcss'); 9 | const concat = require('gulp-concat'); 10 | const uglify = require('gulp-uglify'); 11 | const beeper = require('beeper'); 12 | const zip = require('gulp-zip'); 13 | 14 | // postcss plugins 15 | const easyimport = require('postcss-easy-import'); 16 | const autoprefixer = require('autoprefixer'); 17 | const cssnano = require('cssnano'); 18 | 19 | function serve(done) { 20 | livereload.listen(); 21 | done(); 22 | } 23 | 24 | function handleError(done) { 25 | return function (err) { 26 | if (err) { 27 | beeper(); 28 | } 29 | return done(err); 30 | }; 31 | }; 32 | 33 | function hbs(done) { 34 | pump([ 35 | src(['*.hbs', 'partials/**/*.hbs']), 36 | livereload() 37 | ], handleError(done)); 38 | } 39 | 40 | function css(done) { 41 | pump([ 42 | src('assets/css/screen.css', {sourcemaps: true}), 43 | postcss([ 44 | easyimport, 45 | autoprefixer(), 46 | cssnano() 47 | ]), 48 | dest('assets/built/', {sourcemaps: '.'}), 49 | livereload() 50 | ], handleError(done)); 51 | } 52 | 53 | function getJsFiles(version) { 54 | const jsFiles = [ 55 | src(`node_modules/@tryghost/shared-theme-assets/assets/js/${version}/lib/**/*.js`), 56 | src(`node_modules/@tryghost/shared-theme-assets/assets/js/${version}/main.js`), 57 | ]; 58 | 59 | if (fs.existsSync(`assets/js/lib`)) { 60 | jsFiles.push(src(`assets/js/lib/*.js`)); 61 | } 62 | 63 | jsFiles.push(src(`assets/js/main.js`)); 64 | 65 | return jsFiles; 66 | } 67 | 68 | function js(done) { 69 | pump([ 70 | order(getJsFiles('v1'), {sourcemaps: true}), 71 | concat('main.min.js'), 72 | uglify(), 73 | dest('assets/built/', {sourcemaps: '.'}), 74 | livereload() 75 | ], handleError(done)); 76 | } 77 | 78 | function zipper(done) { 79 | const filename = require('./package.json').name + '.zip'; 80 | 81 | pump([ 82 | src([ 83 | '**', 84 | '!node_modules', '!node_modules/**', 85 | '!dist', '!dist/**', 86 | '!yarn-error.log' 87 | ]), 88 | zip(filename), 89 | dest('dist/') 90 | ], handleError(done)); 91 | } 92 | 93 | const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs); 94 | const cssWatcher = () => watch('assets/css/**/*.css', css); 95 | const jsWatcher = () => watch('assets/js/**/*.js', js); 96 | const watcher = parallel(hbsWatcher, cssWatcher, jsWatcher); 97 | const build = series(css, js); 98 | 99 | exports.build = build; 100 | exports.zip = series(build, zipper); 101 | exports.default = series(build, serve, watcher); 102 | -------------------------------------------------------------------------------- /index.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | {{!-- The tag above means: insert everything in this file 3 | into the {body} of the default.hbs template --}} 4 | 5 | {{#is "home"}} 6 | {{#if @site.description}} 7 |
8 |

{{@site.description}}

9 |
10 | {{/if}} 11 | {{/is}} 12 | 13 |
14 | {{#foreach posts}} 15 | {{> "post-card"}} 16 | {{/foreach}} 17 |
18 | 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "london", 3 | "description": "A minimum, image-centric theme for Ghost.", 4 | "version": "1.0.0", 5 | "private": true, 6 | "engines": { 7 | "ghost": ">=5.0.0" 8 | }, 9 | "license": "MIT", 10 | "screenshots": { 11 | "desktop": "assets/screenshot-desktop.jpg", 12 | "mobile": "assets/screenshot-mobile.jpg" 13 | }, 14 | "author": { 15 | "name": "Ghost Foundation", 16 | "email": "hello@ghost.org", 17 | "url": "https://ghost.org" 18 | }, 19 | "gpm": { 20 | "type": "theme", 21 | "categories": [ 22 | "Minimal", 23 | "Magazine" 24 | ] 25 | }, 26 | "keywords": [ 27 | "ghost", 28 | "theme", 29 | "ghost-theme" 30 | ], 31 | "repository": { 32 | "type": "git", 33 | "url": "https://github.com/TryGhost/London.git" 34 | }, 35 | "bugs": "https://github.com/TryGhost/London/issues", 36 | "docs": "https://london.ghost.io/about/", 37 | "config": { 38 | "posts_per_page": 15, 39 | "image_sizes": { 40 | "xs": { 41 | "width": 100 42 | }, 43 | "s": { 44 | "width": 300 45 | }, 46 | "m": { 47 | "width": 600 48 | }, 49 | "l": { 50 | "width": 1200 51 | }, 52 | "xl": { 53 | "width": 2000 54 | } 55 | }, 56 | "card_assets": true, 57 | "custom": { 58 | "navigation_layout": { 59 | "type": "select", 60 | "options": ["Logo on the left", "Logo in the middle", "Stacked"], 61 | "default": "Logo on the left" 62 | }, 63 | "title_font": { 64 | "type": "select", 65 | "options": [ 66 | "Modern sans-serif", 67 | "Elegant serif" 68 | ], 69 | "default": "Modern sans-serif" 70 | }, 71 | "body_font": { 72 | "type": "select", 73 | "options": [ 74 | "Modern sans-serif", 75 | "Elegant serif" 76 | ], 77 | "default": "Modern sans-serif" 78 | } 79 | } 80 | }, 81 | "scripts": { 82 | "dev": "gulp", 83 | "test": "gscan .", 84 | "zip": "gulp zip" 85 | }, 86 | "devDependencies": { 87 | "@tryghost/shared-theme-assets": "2.5.0", 88 | "autoprefixer": "10.4.21", 89 | "beeper": "2.1.0", 90 | "cssnano": "7.0.7", 91 | "gscan": "4.48.1", 92 | "gulp": "5.0.1", 93 | "gulp-concat": "2.6.1", 94 | "gulp-livereload": "4.0.2", 95 | "gulp-postcss": "10.0.0", 96 | "gulp-uglify": "3.0.2", 97 | "gulp-zip": "5.1.0", 98 | "ordered-read-streams": "2.0.0", 99 | "postcss": "8.5.4", 100 | "postcss-easy-import": "4.0.0", 101 | "pump": "3.0.2" 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /page.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{#post}} 4 |
5 | 6 | {{#match @page.show_title_and_feature_image}} 7 |
8 |

{{title}}

9 | {{> "feature-image"}} 10 |
11 | {{/match}} 12 | 13 | 14 |
15 | {{content}} 16 |
17 | 18 |
19 | {{/post}} 20 | -------------------------------------------------------------------------------- /partials/feature-image.hbs: -------------------------------------------------------------------------------- 1 | {{#if feature_image}} 2 |
3 | {{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}} 14 | {{#if feature_image_caption}} 15 |
{{feature_image_caption}}
16 | {{/if}} 17 |
18 | {{/if}} -------------------------------------------------------------------------------- /partials/icons/avatar.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/icons/facebook.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/icons/ghost-logo.hbs: -------------------------------------------------------------------------------- 1 | Ghost Logo 2 | -------------------------------------------------------------------------------- /partials/icons/infinity.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/icons/location.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/icons/point.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /partials/icons/rss.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/icons/search.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /partials/icons/twitter.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/icons/website.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /partials/post-card.hbs: -------------------------------------------------------------------------------- 1 | {{!-- 2 | 3 | On every 3rd post, add a special .post-card-large class and load a large image 4 | For the rest, just output a smaller background image 5 | 6 | --}} 7 | 8 | 27 | -------------------------------------------------------------------------------- /partials/pswp.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /post.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{#post}} 4 |
5 | 6 |
7 |

{{title}}

8 | {{#if custom_excerpt}} 9 |

{{custom_excerpt}}

10 | {{/if}} 11 | {{> "feature-image"}} 12 |
13 | 14 | 15 |
16 | {{content}} 17 |
18 | 19 | {{#if comments}} 20 |
21 | {{comments}} 22 |
23 | {{/if}} 24 | 25 |
26 | {{/post}} 27 | -------------------------------------------------------------------------------- /tag.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | {{!-- The tag above means: insert everything in this file 3 | into the {body} of the default.hbs template --}} 4 | 5 | {{#tag}} 6 |
7 |

{{name}}

8 |

9 | {{#if description}} 10 | {{description}} 11 | {{else}} 12 | A collection of {{plural ../pagination.total empty='posts' singular='% post' plural='% posts'}} 13 | {{/if}} 14 |

15 |
16 | {{/tag}} 17 | 18 |
19 | {{#foreach posts}} 20 | {{> "post-card"}} 21 | {{/foreach}} 22 |
23 | --------------------------------------------------------------------------------