diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 173e12e..0000000 --- a/.editorconfig +++ /dev/null @@ -1,17 +0,0 @@ -# http://editorconfig.org - -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 4 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - -[*.hbs] -insert_final_newline = false - -[*.md] -trim_trailing_whitespace = false diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index f885d40..0000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ -Do you need help or have a question? Please come chat in our forum: https://forum.ghost.org 👫. - -If you're filing a bug 🐛, please include the following information: - -### Screenshot - -![]() - -### Steps to Reproduce - - 1. This is the first step - 2. This may be the post content used to cause an issue... - -### Technical details - -* Casper Version: -* Ghost Version: -* Browser Version: -* OS Version: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index d74e004..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Test -on: - pull_request: - push: - branches: - - master - - 'renovate/*' -jobs: - test: - runs-on: ubuntu-latest - if: github.event_name == 'push' || (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/')) - steps: - - uses: actions/checkout@v2 - - run: yarn - - run: yarn test:ci diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index e46d1b8..0000000 --- a/.yarnrc +++ /dev/null @@ -1,2 +0,0 @@ -version-tag-prefix "" -version-git-message "%s" diff --git a/LICENSE b/LICENSE index 2dfed06..1dc9a46 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2013-2020 Ghost Foundation +Copyright (c) 2013-2022 Ghost Foundation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/README.md b/README.md index 23a6b76..ac54934 100644 --- a/README.md +++ b/README.md @@ -34,4 +34,4 @@ If your contribution is not related to translation - contribute it to the origin # Copyright & License -Copyright (c) 2013-2020 Ghost Foundation - Released under the [MIT license](LICENSE). +Copyright (c) 2013-2022 Ghost Foundation - Released under the [MIT license](LICENSE). \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9fa77b7..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,9 +0,0 @@ -# Reporting Security Vulnerabilities - -Potential security vulnerabilities can be reported directly us at `security@ghost.org`. The Ghost Security Team communicates privately and works in a secured, isolated repository for tracking, testing, and resolving security-related issues. - -The full, up-to-date details of our security policy and procedure can always be found in our documentation: - -https://ghost.org/docs/concepts/security/ - -Please refer to this before emailing us. Thanks for helping make Ghost safe for everyone 🙏. \ No newline at end of file diff --git a/assets/built/casper.js b/assets/built/casper.js index 5bbc6c5..35c754b 100644 --- a/assets/built/casper.js +++ b/assets/built/casper.js @@ -1,2 +1,2 @@ -!function(o){"use strict";o.fn.fitVids=function(e){var t,i,n={customSelector:null,ignore:null};return document.getElementById("fit-vids-style")||(t=document.head||document.getElementsByTagName("head")[0],(i=document.createElement("div")).innerHTML='

x

',t.appendChild(i.childNodes[1])),e&&o.extend(n,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];n.customSelector&&e.push(n.customSelector);var r=".fitvidsignore";n.ignore&&(r=r+", "+n.ignore);e=o(this).find(e.join(","));(e=(e=e.not("object object")).not(r)).each(function(){var e,t,i=o(this);0
').parent(".fluid-width-video-wrapper").css("padding-top",100*e+"%"),i.removeAttr("height").removeAttr("width"))})})},o.fn.fitVids._count=0}(window.jQuery||window.Zepto),function(e){e.addEventListener("DOMContentLoaded",function(){e.querySelectorAll(".kg-gallery-image img").forEach(function(e){var t=e.closest(".kg-gallery-image"),e=e.attributes.width.value/e.attributes.height.value;t.style.flex=e+" 1 0%"})})}((window,document)),function(t,i){var r,n,o,s,a,d,l,c=i.querySelector("link[rel=next]");function u(){if(404===this.status)return t.removeEventListener("scroll",f),void t.removeEventListener("resize",v);this.response.querySelectorAll(".post-card").forEach(function(e){r.appendChild(i.importNode(e,!0))});var e=this.response.querySelector("link[rel=next]");e?c.href=e.href:(t.removeEventListener("scroll",f),t.removeEventListener("resize",v)),l=i.documentElement.scrollHeight,s=o=!1}function e(){var e;s||(a+d<=l-n?o=!1:(s=!0,(e=new t.XMLHttpRequest).responseType="document",e.addEventListener("load",u),e.open("GET",c.href),e.send(null)))}function h(){o||t.requestAnimationFrame(e),o=!0}function f(){a=t.scrollY,h()}function v(){d=t.innerHeight,l=i.documentElement.scrollHeight,h()}!c||(r=i.querySelector(".post-feed"))&&(s=o=!(n=300),a=t.scrollY,d=t.innerHeight,l=i.documentElement.scrollHeight,t.addEventListener("scroll",f,{passive:!0}),t.addEventListener("resize",v),h())}(window,document),function(s,a){s.Casper||(s.Casper={}),s.Casper.stickyNavTitle=function(e){var t=a.querySelector(e.navSelector),i=a.querySelector(e.titleSelector),r=s.scrollY,n=!1;function o(){i.getBoundingClientRect().top+s.scrollY+(i.offsetHeight+35)<=r?t.classList.add(e.activeClass):t.classList.remove(e.activeClass),n=!1}s.addEventListener("scroll",function(){r=s.scrollY,function(){n||requestAnimationFrame(o);n=!0}()},{passive:!0}),o()}}(window,document); +!function(o){"use strict";o.fn.fitVids=function(e){var t,i,n={customSelector:null,ignore:null};return document.getElementById("fit-vids-style")||(t=document.head||document.getElementsByTagName("head")[0],(i=document.createElement("div")).innerHTML='

x

',t.appendChild(i.childNodes[1])),e&&o.extend(n,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];n.customSelector&&e.push(n.customSelector);var r=".fitvidsignore";n.ignore&&(r=r+", "+n.ignore);e=o(this).find(e.join(","));(e=(e=e.not("object object")).not(r)).each(function(){var e,t,i=o(this);0
').parent(".fluid-width-video-wrapper").css("padding-top",100*e+"%"),i.removeAttr("height").removeAttr("width"))})})},o.fn.fitVids._count=0}(window.jQuery||window.Zepto),function(t,i){var r,n,o,d,s,a,c,l=i.querySelector("link[rel=next]");function h(){if(404===this.status)return t.removeEventListener("scroll",p),void t.removeEventListener("resize",f);this.response.querySelectorAll("article.post-card").forEach(function(e){r.appendChild(i.importNode(e,!0))});var e=this.response.querySelector("link[rel=next]");e?l.href=e.href:(t.removeEventListener("scroll",p),t.removeEventListener("resize",f)),c=i.documentElement.scrollHeight,d=o=!1}function e(){var e;d||(s+a<=c-n?o=!1:(d=!0,(e=new t.XMLHttpRequest).responseType="document",e.addEventListener("load",h),e.open("GET",l.href),e.send(null)))}function u(){o||t.requestAnimationFrame(e),o=!0}function p(){s=t.scrollY,u()}function f(){a=t.innerHeight,c=i.documentElement.scrollHeight,u()}!l||(r=i.querySelector(".post-feed"))&&(d=o=!(n=300),s=t.scrollY,a=t.innerHeight,c=i.documentElement.scrollHeight,t.addEventListener("scroll",p,{passive:!0}),t.addEventListener("resize",f),u())}(window,document); //# sourceMappingURL=casper.js.map \ No newline at end of file diff --git a/assets/built/casper.js.map b/assets/built/casper.js.map index 68697f2..24ac7fe 100644 --- a/assets/built/casper.js.map +++ b/assets/built/casper.js.map @@ -1 +1 @@ -{"version":3,"sources":["jquery.fitvids.js","gallery-card.js","infinite-scroll.js","sticky-nav-title.js"],"names":["$","fn","fitVids","options","head","div","settings","customSelector","ignore","document","getElementById","getElementsByTagName","createElement","innerHTML","appendChild","childNodes","extend","this","each","selectors","push","ignoreList","$allVideos","find","join","not","aspectRatio","videoName","$this","parents","length","tagName","toLowerCase","parent","css","isNaN","attr","parseInt","height","width","_count","wrap","removeAttr","window","jQuery","Zepto","addEventListener","querySelectorAll","forEach","image","container","closest","ratio","attributes","value","style","flex","feedElement","buffer","ticking","loading","lastScrollY","lastWindowHeight","lastDocumentHeight","nextElement","querySelector","onPageLoad","status","removeEventListener","onScroll","onResize","response","item","importNode","resNextElement","href","documentElement","scrollHeight","onUpdate","xhr","XMLHttpRequest","responseType","open","send","requestTick","requestAnimationFrame","scrollY","innerHeight","passive","Casper","stickyNavTitle","nav","navSelector","title","titleSelector","update","getBoundingClientRect","top","offsetHeight","classList","add","activeClass","remove"],"mappings":"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","file":"casper.js","sourcesContent":["/*jshint browser:true */\n/*!\n* FitVids 1.3\n*\n*\n* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation\n* This is an unofficial release, ported by John O'Nolan\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the MIT license\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '

x

';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n\n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","/* eslint-env browser */\n\n/**\n * Gallery card support\n * Used on any individual post/page\n *\n * Detects when a gallery card has been used and applies sizing to make sure\n * the display matches what is seen in the editor.\n */\n\n(function (window, document) {\n var resizeImagesInGalleries = function resizeImagesInGalleries() {\n var images = document.querySelectorAll('.kg-gallery-image img');\n images.forEach(function (image) {\n var container = image.closest('.kg-gallery-image');\n var width = image.attributes.width.value;\n var height = image.attributes.height.value;\n var ratio = width / height;\n container.style.flex = ratio + ' 1 0%';\n });\n };\n\n document.addEventListener('DOMContentLoaded', resizeImagesInGalleries);\n})(window, document);\n","/* eslint-env browser */\n\n/**\n * Infinite Scroll\n * Used on all pages where there is a list of posts (homepage, tag index, etc).\n *\n * When the page is scrolled to 300px from the bottom, the next page of posts\n * is fetched by following the the that is output\n * by {{ghost_head}}.\n *\n * The individual post items are extracted from the fetched pages by looking for\n * a wrapper element with the class \"post-card\". Any found elements are appended\n * to the element with the class \"post-feed\" in the currently viewed page.\n */\n\n(function (window, document) {\n // next link element\n var nextElement = document.querySelector('link[rel=next]');\n if (!nextElement) {\n return;\n }\n\n // post feed element\n var feedElement = document.querySelector('.post-feed');\n if (!feedElement) {\n return;\n }\n\n var buffer = 300;\n\n var ticking = false;\n var loading = false;\n\n var lastScrollY = window.scrollY;\n var lastWindowHeight = window.innerHeight;\n var lastDocumentHeight = document.documentElement.scrollHeight;\n\n function onPageLoad() {\n if (this.status === 404) {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n return;\n }\n\n // append contents\n var postElements = this.response.querySelectorAll('.post-card');\n postElements.forEach(function (item) {\n // document.importNode is important, without it the item's owner\n // document will be different which can break resizing of\n // `object-fit: cover` images in Safari\n feedElement.appendChild(document.importNode(item, true));\n });\n\n // set next link\n var resNextElement = this.response.querySelector('link[rel=next]');\n if (resNextElement) {\n nextElement.href = resNextElement.href;\n } else {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n }\n\n // sync status\n lastDocumentHeight = document.documentElement.scrollHeight;\n ticking = false;\n loading = false;\n }\n\n function onUpdate() {\n // return if already loading\n if (loading) {\n return;\n }\n\n // return if not scroll to the bottom\n if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {\n ticking = false;\n return;\n }\n\n loading = true;\n\n var xhr = new window.XMLHttpRequest();\n xhr.responseType = 'document';\n\n xhr.addEventListener('load', onPageLoad);\n\n xhr.open('GET', nextElement.href);\n xhr.send(null);\n }\n\n function requestTick() {\n ticking || window.requestAnimationFrame(onUpdate);\n ticking = true;\n }\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function onResize() {\n lastWindowHeight = window.innerHeight;\n lastDocumentHeight = document.documentElement.scrollHeight;\n requestTick();\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n window.addEventListener('resize', onResize);\n\n requestTick();\n})(window, document);\n","/* eslint-env browser */\n\n/**\n * Nav/Title replacement\n * Used on invividual post pages, displays the post title in place of the nav\n * bar when scrolling past the title\n *\n * Usage:\n * ```\n * Casper.stickyTitle({\n * navSelector: '.site-nav-main',\n * titleSelector: '.post-full-title',\n * activeClass: 'nav-post-title-active'\n * });\n * ```\n */\n\n(function (window, document) {\n // set up Casper as a global object\n if (!window.Casper) {\n window.Casper = {};\n }\n\n window.Casper.stickyNavTitle = function stickyNavTitle(options) {\n var nav = document.querySelector(options.navSelector);\n var title = document.querySelector(options.titleSelector);\n\n var lastScrollY = window.scrollY;\n var ticking = false;\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function requestTick() {\n if (!ticking) {\n requestAnimationFrame(update);\n }\n ticking = true;\n }\n\n function update() {\n var trigger = title.getBoundingClientRect().top + window.scrollY;\n var triggerOffset = title.offsetHeight + 35;\n\n // show/hide post title\n if (lastScrollY >= trigger + triggerOffset) {\n nav.classList.add(options.activeClass);\n } else {\n nav.classList.remove(options.activeClass);\n }\n\n ticking = false;\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n\n update();\n };\n})(window, document);\n"]} \ No newline at end of file +{"version":3,"sources":["jquery.fitvids.js","infinite-scroll.js"],"names":["$","fn","fitVids","options","head","div","settings","customSelector","ignore","document","getElementById","getElementsByTagName","createElement","innerHTML","appendChild","childNodes","extend","this","each","selectors","push","ignoreList","$allVideos","find","join","not","aspectRatio","videoName","$this","parents","length","tagName","toLowerCase","parent","css","isNaN","attr","parseInt","height","width","_count","wrap","removeAttr","window","jQuery","Zepto","feedElement","buffer","ticking","loading","lastScrollY","lastWindowHeight","lastDocumentHeight","nextElement","querySelector","onPageLoad","status","removeEventListener","onScroll","onResize","response","querySelectorAll","forEach","item","importNode","resNextElement","href","documentElement","scrollHeight","onUpdate","xhr","XMLHttpRequest","responseType","addEventListener","open","send","requestTick","requestAnimationFrame","scrollY","innerHeight","passive"],"mappings":"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","file":"casper.js","sourcesContent":["/*jshint browser:true */\n/*!\n* FitVids 1.3\n*\n*\n* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation\n* This is an unofficial release, ported by John O'Nolan\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the MIT license\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '

x

';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n\n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","/* eslint-env browser */\n\n/**\n * Infinite Scroll\n * Used on all pages where there is a list of posts (homepage, tag index, etc).\n *\n * When the page is scrolled to 300px from the bottom, the next page of posts\n * is fetched by following the the that is output\n * by {{ghost_head}}.\n *\n * The individual post items are extracted from the fetched pages by looking for\n * a wrapper element with the class \"post-card\". Any found elements are appended\n * to the element with the class \"post-feed\" in the currently viewed page.\n */\n\n(function (window, document) {\n // next link element\n var nextElement = document.querySelector('link[rel=next]');\n if (!nextElement) {\n return;\n }\n\n // post feed element\n var feedElement = document.querySelector('.post-feed');\n if (!feedElement) {\n return;\n }\n\n var buffer = 300;\n\n var ticking = false;\n var loading = false;\n\n var lastScrollY = window.scrollY;\n var lastWindowHeight = window.innerHeight;\n var lastDocumentHeight = document.documentElement.scrollHeight;\n\n function onPageLoad() {\n if (this.status === 404) {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n return;\n }\n\n // append contents\n var postElements = this.response.querySelectorAll('article.post-card');\n postElements.forEach(function (item) {\n // document.importNode is important, without it the item's owner\n // document will be different which can break resizing of\n // `object-fit: cover` images in Safari\n feedElement.appendChild(document.importNode(item, true));\n });\n\n // set next link\n var resNextElement = this.response.querySelector('link[rel=next]');\n if (resNextElement) {\n nextElement.href = resNextElement.href;\n } else {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n }\n\n // sync status\n lastDocumentHeight = document.documentElement.scrollHeight;\n ticking = false;\n loading = false;\n }\n\n function onUpdate() {\n // return if already loading\n if (loading) {\n return;\n }\n\n // return if not scroll to the bottom\n if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {\n ticking = false;\n return;\n }\n\n loading = true;\n\n var xhr = new window.XMLHttpRequest();\n xhr.responseType = 'document';\n\n xhr.addEventListener('load', onPageLoad);\n\n xhr.open('GET', nextElement.href);\n xhr.send(null);\n }\n\n function requestTick() {\n ticking || window.requestAnimationFrame(onUpdate);\n ticking = true;\n }\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function onResize() {\n lastWindowHeight = window.innerHeight;\n lastDocumentHeight = document.documentElement.scrollHeight;\n requestTick();\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n window.addEventListener('resize', onResize);\n\n requestTick();\n})(window, document);\n"]} \ No newline at end of file diff --git a/assets/built/global.css b/assets/built/global.css index bbd9369..0531be8 100644 --- a/assets/built/global.css +++ b/assets/built/global.css @@ -1,2 +1,2 @@ -:root{--blue:#3eb0ef;--green:#a4d037;--purple:#ad26b4;--yellow:#fecd35;--red:#f05230;--darkgrey:#15171a;--midgrey:#738a94;--lightgrey:#c5d2d9;--whitegrey:#e5eff5;--pink:#fa3a57;--brown:#a3821a;--darkmode:#1a1c20}a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#303a3e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e4eaed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:var(--darkgrey);font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid var(--whitegrey)}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a6ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500} +a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;max-width:100%;height:auto}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{padding:3px 5px;font-family:var(--font-mono);font-size:1.5rem;background:#f6f8fa;border:1px solid rgba(124,139,154,.25);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(124,139,154,.25)}@media (max-width:600px){kbd{font-size:1.3rem}}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{color:#35373a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#daf2fd}::selection{text-shadow:none;background:#daf2fd}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #f0f0f0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}::not(.gh-content) blockquote,::not(.gh-content) dl,::not(.gh-content) ol,::not(.gh-content) p,::not(.gh-content) ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{padding-left:.3em;line-height:1.6em}li+li{margin-top:.5em}dt{float:left;margin:0 20px 0 0;width:120px;color:#daf2fd;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:#daf2fd}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#15171a;text-decoration:none}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility;letter-spacing:-.01em}h1{margin:0 0 .5em;font-size:4.8rem;font-weight:700;letter-spacing:-.015em}@media (max-width:600px){h1{font-size:2.8rem}}h2{margin:1.5em 0 .5em;font-size:2.8rem;font-weight:700}@media (max-width:600px){h2{font-size:2.3rem}}h3{margin:1.5em 0 .5em;font-size:2.4rem;font-weight:600}@media (max-width:600px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:600px){h4{font-size:1.7rem}}h5{font-size:2rem}h5,h6{margin:1.5em 0 .5em}h6{font-size:1.8rem} /*# sourceMappingURL=global.css.map */ \ No newline at end of file diff --git a/assets/built/global.css.map b/assets/built/global.css.map index 550ecb9..a5d87d5 100644 --- a/assets/built/global.css.map +++ b/assets/built/global.css.map @@ -1 +1 @@ -{"version":3,"sources":["global.css"],"names":[],"mappings":"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","file":"global.css","sourcesContent":["/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n /* Colours */\n --blue: #3eb0ef;\n --green: #a4d037;\n --purple: #ad26b4;\n --yellow: #fecd35;\n --red: #f05230;\n --darkgrey: #15171A;\n --midgrey: #738a94;\n --lightgrey: #c5d2d9;\n --whitegrey: #e5eff5;\n --pink: #fa3a57;\n --brown: #a3821a;\n --darkmode: color-mod(var(--darkgrey) l(+2%));\n}\n\n/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\nimg {\n max-width: 100%;\n}\nhtml {\n box-sizing: border-box;\n font-family: sans-serif;\n\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nb,\nstrong {\n font-weight: bold;\n}\ni,\nem,\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nmark {\n background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 3 */\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n}\nbutton {\n overflow: visible;\n border: none;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; /* 3 */\n\n -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput:focus {\n outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n box-sizing: content-box; /* 2 */\n\n -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nlegend {\n padding: 0; /* 2 */\n border: 0; /* 1 */\n}\ntextarea {\n overflow: auto;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n\n/* ==========================================================================\n Base styles: opinionated defaults\n ========================================================================== */\n\nhtml {\n overflow-x: hidden;\n overflow-y: scroll;\n font-size: 62.5%;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n overflow-x: hidden;\n color: color-mod(var(--midgrey) l(-30%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n line-height: 1.6em;\n font-weight: 400;\n font-style: normal;\n letter-spacing: 0;\n text-rendering: optimizeLegibility;\n background: #fff;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n text-shadow: none;\n background: color-mod(var(--blue) lightness(+30%));\n}\n\nhr {\n position: relative;\n display: block;\n width: 100%;\n margin: 2.5em 0 3.5em;\n padding: 0;\n height: 1px;\n border: 0;\n border-top: 1px solid color-mod(var(--lightgrey) l(+10%));\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n vertical-align: middle;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\np,\nul,\nol,\ndl,\nblockquote {\n margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n padding-left: 1.3em;\n padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n margin: 0.5em 0 1em;\n}\n\nul {\n list-style: disc;\n}\n\nol {\n list-style: decimal;\n}\n\nul,\nol {\n max-width: 100%;\n}\n\nli {\n margin: 0.5em 0;\n padding-left: 0.3em;\n line-height: 1.6em;\n}\n\ndt {\n float: left;\n margin: 0 20px 0 0;\n width: 120px;\n color: var(--darkgrey);\n font-weight: 500;\n text-align: right;\n}\n\ndd {\n margin: 0 0 5px 0;\n text-align: left;\n}\n\nblockquote {\n margin: 1.5em 0;\n padding: 0 1.6em 0 1.6em;\n border-left: var(--whitegrey) 0.5em solid;\n}\n\nblockquote p {\n margin: 0.8em 0;\n font-size: 1.2em;\n font-weight: 300;\n}\n\nblockquote small {\n display: inline-block;\n margin: 0.8em 0 0.8em 1.5em;\n font-size: 0.9em;\n opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n font-weight: bold;\n}\nblockquote cite a {\n font-weight: normal;\n}\n\na {\n color: color-mod(var(--blue) l(-5%));\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n line-height: 1.15;\n font-weight: 600;\n text-rendering: optimizeLegibility;\n}\n\nh1 {\n margin: 0 0 0.5em 0;\n font-size: 5.5rem;\n font-weight: 600;\n}\n@media (max-width: 500px) {\n h1 {\n font-size: 2.2rem;\n }\n}\n\nh2 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2.2rem;\n}\n@media (max-width: 500px) {\n h2 {\n font-size: 1.8rem;\n }\n}\n\nh3 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.8rem;\n font-weight: 500;\n}\n@media (max-width: 500px) {\n h3 {\n font-size: 1.7rem;\n }\n}\n\nh4 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.6rem;\n font-weight: 500;\n}\n\nh5 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n\nh6 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["global.css"],"names":[],"mappings":"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","file":"global.css","sourcesContent":["/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\nimg {\n display: block;\n max-width: 100%;\n height: auto;\n}\nhtml {\n box-sizing: border-box;\n font-family: sans-serif;\n\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nb,\nstrong {\n font-weight: bold;\n}\ni,\nem,\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nmark {\n background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nkbd {\n padding: 3px 5px;\n font-family: var(--font-mono);\n font-size: 1.5rem;\n background: #f6f8fa;\n border: 1px solid rgba(124, 139, 154, 0.25);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 rgba(124, 139, 154, 0.25);\n}\n@media (max-width: 600px) {\n kbd {\n font-size: 1.3rem;\n }\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 3 */\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n}\nbutton {\n overflow: visible;\n border: none;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; /* 3 */\n\n -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput:focus {\n outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n box-sizing: content-box; /* 2 */\n\n -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nlegend {\n padding: 0; /* 2 */\n border: 0; /* 1 */\n}\ntextarea {\n overflow: auto;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n\n/* ==========================================================================\n Base styles: opinionated defaults\n ========================================================================== */\n\nhtml {\n font-size: 62.5%;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n color: #35373A;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n line-height: 1.6em;\n font-weight: 400;\n font-style: normal;\n letter-spacing: 0;\n text-rendering: optimizeLegibility;\n background: #fff;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n text-shadow: none;\n background: #daf2fd;\n}\n\nhr {\n position: relative;\n display: block;\n width: 100%;\n margin: 2.5em 0 3.5em;\n padding: 0;\n height: 1px;\n border: 0;\n border-top: 1px solid #f0f0f0;\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n vertical-align: middle;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\n::not(.gh-content) p,\n::not(.gh-content) ul,\n::not(.gh-content) ol,\n::not(.gh-content) dl,\n::not(.gh-content) blockquote {\n margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n padding-left: 1.3em;\n padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n margin: 0.5em 0 1em;\n}\n\nul {\n list-style: disc;\n}\n\nol {\n list-style: decimal;\n}\n\nul,\nol {\n max-width: 100%;\n}\n\nli {\n padding-left: 0.3em;\n line-height: 1.6em;\n}\n\nli + li {\n margin-top: 0.5em;\n}\n\ndt {\n float: left;\n margin: 0 20px 0 0;\n width: 120px;\n color: #daf2fd;\n font-weight: 500;\n text-align: right;\n}\n\ndd {\n margin: 0 0 5px 0;\n text-align: left;\n}\n\nblockquote {\n margin: 1.5em 0;\n padding: 0 1.6em 0 1.6em;\n border-left: #daf2fd;\n}\n\nblockquote small {\n display: inline-block;\n margin: 0.8em 0 0.8em 1.5em;\n font-size: 0.9em;\n opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n font-weight: bold;\n}\nblockquote cite a {\n font-weight: normal;\n}\n\na {\n color: #15171A;\n text-decoration: none;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n line-height: 1.15;\n font-weight: 600;\n text-rendering: optimizeLegibility;\n letter-spacing: -0.01em;\n}\n\nh1 {\n margin: 0 0 0.5em 0;\n font-size: 4.8rem;\n font-weight: 700;\n letter-spacing: -0.015em;\n}\n@media (max-width: 600px) {\n h1 {\n font-size: 2.8rem;\n }\n}\n\nh2 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2.8rem;\n font-weight: 700;\n}\n@media (max-width: 600px) {\n h2 {\n font-size: 2.3rem;\n }\n}\n\nh3 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2.4rem;\n font-weight: 600;\n}\n@media (max-width: 600px) {\n h3 {\n font-size: 1.7rem;\n }\n}\n\nh4 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2rem;\n}\n@media (max-width: 600px) {\n h4 {\n font-size: 1.7rem;\n }\n}\n\nh5 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2rem;\n}\n\nh6 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.8rem;\n}\n"]} \ No newline at end of file diff --git a/assets/built/screen.css b/assets/built/screen.css index e36dca2..a0ae1d0 100644 --- a/assets/built/screen.css +++ b/assets/built/screen.css @@ -1,2 +1,2 @@ -:root{--blue:#3eb0ef;--green:#a4d037;--purple:#ad26b4;--yellow:#fecd35;--red:#f05230;--darkgrey:#15171a;--midgrey:#738a94;--lightgrey:#c5d2d9;--whitegrey:#e5eff5;--pink:#fa3a57;--brown:#a3821a;--darkmode:#1a1c20}a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#303a3e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e4eaed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:var(--darkgrey);font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid var(--whitegrey)}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a6ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}body{background:#fff}.img{display:block;width:100%;height:100%;background-position:50%;background-size:cover;border-radius:100%}.hidden{visibility:hidden;position:absolute;text-indent:-9999px}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-main{z-index:100;flex-grow:1}.outer{position:relative;padding:0 5vw}.inner{margin:0 auto;max-width:1040px;width:100%}@media (min-width:900px){.author-template .post-feed,.home-template .post-feed,.tag-template .post-feed{padding:40px 0 5vw;border-top-left-radius:3px;border-top-right-radius:3px}.home-template .site-nav{position:relative}}.site-header-background{position:relative;margin-top:64px;padding-bottom:12px;color:#fff;background:#0a0b0c no-repeat 50%;background-size:cover}.site-header-background:before{bottom:0;background:rgba(0,0,0,.18)}.site-header-background:after,.site-header-background:before{content:"";position:absolute;top:0;right:0;left:0;z-index:10;display:block}.site-header-background:after{bottom:auto;height:140px;background:linear-gradient(rgba(0,0,0,.15),transparent)}.site-header-background.no-image:after,.site-header-background.no-image:before{display:none}.site-header-content{z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6vw 3vw;min-height:200px;max-height:340px}.site-title{z-index:10;margin:0 0 0 -2px;padding:0;font-size:5rem;line-height:1em;font-weight:600}.site-logo{max-height:55px}.site-description{z-index:10;margin:0;padding:5px 0;font-size:2.1rem;line-height:1.4em;font-weight:400;opacity:.8}.site-home-header{z-index:1000}.site-home-header .site-header-background{margin-top:0}.site-home-header .site-header-content{padding:5vw 3vw 6vw}.site-home-header .site-title{font-size:5.5rem;text-align:center}.site-home-header .site-description{font-size:2.2rem;font-weight:300;text-align:center}.site-archive-header .site-header-content{position:relative;align-items:stretch;padding:12vw 0 20px;min-height:200px;max-height:600px}.site-archive-header .no-image{padding-top:0;padding-bottom:0;color:var(--darkgrey);background:#fff;opacity:1}.site-archive-header .no-image .site-description{color:var(--midgrey);opacity:1}.site-archive-header .no-image .site-header-content{padding:5vw 0 10px;border-bottom:1px solid #eaeff1}@media (max-width:900px){.site-header-content{padding-bottom:9vw}}@media (max-width:500px){.site-home-header .site-title{font-size:4.2rem}.site-home-header .site-description{font-size:1.8rem}.site-archive-header .site-header-content{flex-direction:column;align-items:center;min-height:unset}.site-archive-header .site-title{font-size:4.2rem;text-align:center}.site-archive-header .no-image .site-header-content{padding:12vw 0 20px}}.site-nav-main{position:fixed;top:0;right:0;left:0;z-index:1000;background:#0a0b0c}.site-nav{position:relative;z-index:100;display:flex;justify-content:space-between;align-items:flex-start;overflow:hidden;height:64px;font-size:1.3rem}.site-nav-left-wrapper{position:relative;flex:1 0 auto;display:flex}.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after,.site-nav-main .site-nav-left-wrapper:after{content:"";position:absolute;top:0;z-index:1000;width:40px;height:100%;right:0;background:linear-gradient(90deg,rgba(10,11,12,0) 0,#0a0b0c)}.site-nav-left{flex:1 0 auto;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;margin-right:10px;padding:10px 0 80px;font-weight:500;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap;-ms-overflow-scrolling:touch}.site-nav-left .nav li:last-of-type{padding-right:20px}.site-nav-logo{position:relative;z-index:100;flex-shrink:0;display:inline-block;margin-right:32px;padding:12px 0;color:#fff;font-size:1.7rem;line-height:1.8rem;font-weight:700;letter-spacing:-.5px;text-transform:none}.site-nav-logo:hover{text-decoration:none}.site-nav-logo img{display:block;width:auto;height:21px}.site-home-header .site-nav-logo{display:none}.site-nav-content{position:relative;align-self:flex-start}.nav{position:absolute;z-index:1000;display:flex;margin:0 0 0 -12px;padding:0;list-style:none;transition:all 1s cubic-bezier(.19,1,.22,1)}.nav li{display:block;margin:0;padding:0}.nav li a{position:relative;display:block;padding:12px;color:#fff;opacity:.8;transition:opacity .35s ease-in-out}.nav li a:hover{text-decoration:none;opacity:1}.nav li a:before{content:"";position:absolute;right:100%;bottom:8px;left:12px;height:1px;background:#fff;opacity:.25;transition:all .35s ease-in-out}.nav li a:hover:before{right:12px;opacity:.5}.nav-post-title-active .nav{visibility:hidden;opacity:0;transform:translateY(-175%)}.nav-post-title{visibility:hidden;position:absolute;top:9px;color:#fff;font-size:1.7rem;font-weight:400;text-transform:none;opacity:0;transition:all 1s cubic-bezier(.19,1,.22,1);transform:translateY(175%)}.nav-post-title.dash{left:-25px}.nav-post-title.dash:before{content:"– ";opacity:.5}.nav-post-title-active .nav-post-title{visibility:visible;opacity:1;transform:translateY(0)}.site-nav-right{flex:0 1 auto;display:flex;justify-content:flex-end;align-items:center;padding:10px 0;height:64px}.site-nav-right .nav{position:relative;margin:0}.site-nav-right .nav a{white-space:nowrap}.site-nav-right .nav a:before{display:none}.site-nav-right .nav li:last-of-type a{margin-right:-12px}.social-links{flex-shrink:0;display:flex;align-items:center}.social-link{display:inline-block;margin:0;padding:10px;opacity:.8}.social-link:hover{opacity:1}.social-link svg{height:1.8rem;fill:#fff}.social-link-fb svg,.social-link-wb svg{height:1.6rem}.social-link-wb svg path{stroke:#fff}.social-link-rss svg{height:1.9rem}.subscribe-button{display:block;margin:0 0 0 10px;padding:4px 10px;border:1px solid #fff;color:#fff;line-height:1em;border-radius:10px;opacity:.8}.subscribe-button:hover{text-decoration:none;opacity:1}.site-nav-right .nav+.subscribe-button{margin-left:24px}.rss-button{padding:10px 8px;opacity:.8}.rss-button:hover{opacity:1}.rss-button svg{margin-bottom:1px;height:2.1rem;fill:#fff}.home-template .site-nav-main{z-index:100}.home-template .site-nav-main .site-nav{opacity:0;transition:all .5s cubic-bezier(.19,1,.22,1) 0s}.home-template .site-nav-main .fixed-nav-active{opacity:1;transition:all .5s cubic-bezier(.19,1,.22,1) .05s}@media (max-width:700px){.site-home-header .site-nav{margin-left:-5vw}.site-nav-main{padding-right:0;padding-left:0}.site-nav-left{margin-right:0;padding-left:5vw}.site-nav-right{display:none}}.posts{overflow-x:hidden}.post-feed{flex-wrap:wrap;margin:0 -20px;padding:50px 0 0;background:#fff}.post-card,.post-feed{position:relative;display:flex}.post-card{flex:1 1 301px;flex-direction:column;overflow:hidden;margin:0 0 40px;padding:0 20px 40px;min-height:220px;border-bottom:1px solid #eaeff1;background-size:cover}.post-card-image-link{position:relative;display:block;overflow:hidden;border-radius:3px}.post-card-image{width:100%;height:200px;background:var(--lightgrey) no-repeat 50%;-o-object-fit:cover;object-fit:cover}.post-card-content-link{position:relative;display:block;color:var(--darkgrey)}.post-card-content-link:hover{text-decoration:none}.post-card-header{margin:15px 0 0}.post-feed .no-image .post-card-content-link{padding:0}.no-image .post-card-header{margin-top:0}.post-card-primary-tag{margin:0 0 .2em;color:var(--blue);font-size:1.2rem;font-weight:500;letter-spacing:.2px;text-transform:uppercase}.post-card-title{margin:0 0 .4em;line-height:1.15em;transition:color .2s ease-in-out}.no-image .post-card-title{margin-top:0}.post-card-content{flex-grow:1;display:flex;flex-direction:column}.post-card-excerpt{max-width:56em;color:var(--midgrey);font-family:Georgia,serif}.post-card-excerpt p{margin-bottom:1em}.post-card-meta{display:flex;align-items:flex-start;padding:0}.author-profile-image,.avatar-wrapper{display:block;width:100%;height:100%;background:#e4eaed;border-radius:100%;-o-object-fit:cover;object-fit:cover}.post-card-meta .avatar-wrapper,.post-card-meta .profile-image-wrapper{position:relative}.author-list{display:flex;flex-wrap:wrap;margin:0 0 0 4px;padding:0;list-style:none}.author-list-item{position:relative;flex-shrink:0;margin:0;padding:0}.static-avatar{display:block;overflow:hidden;margin:0 0 0 -6px;width:34px;height:34px;border:2px solid #fff;border-radius:100%}.author-name-tooltip{position:absolute;bottom:105%;z-index:999;display:block;padding:2px 8px;color:#fff;font-size:1.2rem;letter-spacing:.2px;white-space:nowrap;background:var(--darkgrey);border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.03);opacity:0;transition:all .35s cubic-bezier(.4,.01,.165,.99);transform:translateY(6px);pointer-events:none}.author-list-item:hover .author-name-tooltip{opacity:1;transform:translateY(0)}@media (max-width:700px){.author-name-tooltip{display:none}}.post-card-byline-content{flex:1 1 50%;display:flex;flex-direction:column;margin:2px 0 0 6px;color:#90a2aa;font-size:1.2rem;line-height:1.4em;font-weight:400;letter-spacing:.2px;text-transform:uppercase}.post-card-byline-content span{margin:0}.post-card-byline-content a{color:#434952;font-weight:600}.post-card-byline-date{font-size:1.2rem}.post-card-byline-date .bull{display:inline-block;margin:0 4px;opacity:.6}.single-author-byline{display:flex;flex-direction:column;margin-left:5px;color:#5c7078;font-size:1.3rem;line-height:1.4em;font-weight:500}.single-author{display:flex;align-items:center}.single-author .static-avatar{margin-left:-2px}.single-author-name{display:inline-block}@media (min-width:795px){.post-card-large{flex:1 1 100%;flex-direction:row;padding-bottom:40px;min-height:280px;border-top:0}.post-card-large:hover{border-bottom-color:#e4eaed}.post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-card-large .post-card-image-link{position:relative;flex:1 1 auto;margin-bottom:0;min-height:380px}.post-card-large .post-card-image{position:absolute;width:100%;height:100%}.post-card-large .post-card-content{flex:0 1 361px;justify-content:center}.post-card-large .post-card-title{margin-top:0;font-size:3.2rem}.post-card-large .post-card-content-link,.post-card-large .post-card-meta{padding:0 0 0 40px}.post-card-large .post-card-excerpt p{margin-bottom:1.5em;font-size:1.8rem;line-height:1.5em}}@media (max-width:1170px){.post-card{margin-bottom:5vw}}@media (max-width:650px){.post-feed{padding-top:5vw}.post-card{margin-bottom:5vw}}@media (max-width:500px){.post-card-title{font-size:1.9rem}.post-card-excerpt{font-size:1.6rem}}.page-template .site-main,.post-template .site-main{margin-top:64px;padding-bottom:4vw;background:#fff}.post-full-header{position:relative;margin:0 auto;padding:70px 170px 50px;border-top-left-radius:3px;border-top-right-radius:3px}.post-full-tags{display:flex;justify-content:flex-start;align-items:center;color:var(--midgrey);font-size:1.3rem;line-height:1.4em;font-weight:600;text-transform:uppercase}.post-full-meta-date{color:var(--midgrey);font-size:1.2rem;font-weight:400}@media (max-width:1170px){.post-full-header{padding:60px 11vw 50px}}@media (max-width:800px){.post-full-header{padding-right:5vw;padding-left:5vw}}@media (max-width:500px){.post-full-header{padding:20px 0 35px}}.post-full-title{margin:0 0 .2em;color:#0a0b0c}.post-full-custom-excerpt{margin:20px 0 0;color:var(--midgrey);font-family:Georgia,serif;font-size:2.3rem;line-height:1.4em;font-weight:300}.date-divider{display:inline-block;margin:0 6px 1px;font-weight:300}.post-full-image{display:flex;flex-direction:column;align-items:center;overflow:hidden;margin:25px 0 50px;background:#e4eaed;border-radius:3px}.post-full-image img{max-width:1040px;width:100%;height:auto}.post-full-content{position:relative;margin:0 auto;padding:0 170px 6vw;min-height:230px;font-family:Georgia,serif;font-size:2rem;line-height:1.6em;background:#fff}@media (max-width:1170px){.post-full-content{padding:0 11vw}}@media (max-width:800px){.post-full-content{padding:0 5vw;font-size:1.8rem}}@media (max-width:500px){.post-full-custom-excerpt{font-size:1.9rem;line-height:1.5em}}.no-image .post-full-content{padding-top:0}.no-image .post-full-content:after,.no-image .post-full-content:before{display:none}.footnotes,.post-full-comments,.post-full-content blockquote,.post-full-content dl,.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin:0 0 1.5em;min-width:100%}@media (max-width:500px){.footnotes,.post-full-comments,.post-full-content dl,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin-bottom:1.28em}}.post-full-content li{word-break:break-word}.post-full-content li p{margin:0}.post-full-content a{color:var(--darkgrey);word-break:break-word;box-shadow:var(--darkgrey) 0 -1px 0 inset;transition:all .2s ease-in-out}.post-full-content a:hover{color:var(--blue);text-decoration:none;box-shadow:var(--blue) 0 -1px 0 inset}.post-full-content em,.post-full-content strong{color:#0a0b0c}.post-full-content small{display:inline-block;line-height:1.6em}.post-full-content li:first-child{margin-top:0}.post-full-content img,.post-full-content video{display:block;margin:1.5em auto;max-width:1040px;height:auto}@media (max-width:1040px){.post-full-content img,.post-full-content video{width:100%}}.post-full-content img[src$="#full"]{max-width:none;width:100vw}.post-full-content img+br+small{display:block;margin-top:-3em;margin-bottom:1.5em;text-align:center}.post-full-content iframe{margin:0 auto!important}.post-full-content blockquote{margin:0 0 1.5em;padding:0 1.5em;border-left:3px solid #3eb0ef}@media (max-width:500px){.post-full-content blockquote{padding:0 1.3em}}.post-full-content blockquote p{margin:0 0 1em;color:inherit;font-size:inherit;line-height:inherit;font-style:italic}.post-full-content blockquote p:last-child{margin-bottom:0}.post-full-content code{padding:0 5px 2px;font-size:.8em;line-height:1em;font-weight:400!important;background:var(--whitegrey);border-radius:3px}.post-full-content p code{word-break:break-all}.post-full-content pre{overflow-x:auto;margin:1.5em 0 3em;padding:20px;max-width:100%;border:1px solid #000;color:var(--whitegrey);font-size:1.4rem;line-height:1.5em;background:#0e1012;border-radius:5px}.post-full-content pre ::-moz-selection{color:#3b474d}.post-full-content pre ::selection{color:#3b474d}.post-full-content pre code{padding:0;font-size:inherit;line-height:inherit;background:transparent}.post-full-content pre code :not(span){color:inherit}.post-full-content .fluid-width-video-wrapper{margin:1.5em 0 3em}.post-full-content hr{margin:2em 0}.post-full-content hr:after{content:"";position:absolute;top:-15px;left:50%;display:block;margin-left:-10px;width:1px;height:30px;background:#e4eaed;box-shadow:0 0 0 5px #fff;transform:rotate(45deg)}.post-full-content hr+p{margin-top:1.2em}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6{color:#0a0b0c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.post-full-content h1{margin:.5em 0 .4em;font-size:4.2rem;line-height:1.25em;font-weight:600}.post-full-content p+h1{margin-top:.8em}@media (max-width:800px){.post-full-content h1{font-size:3.2rem;line-height:1.25em}}.post-full-content h2{margin:.5em 0 .4em;font-size:3.2rem;line-height:1.25em;font-weight:600}.post-full-content p+h2{margin-top:.8em}@media (max-width:800px){.post-full-content h2{margin-bottom:.3em;font-size:2.8rem;line-height:1.25em}}.post-full-content h3{margin:.5em 0 .2em;font-size:2.5rem;line-height:1.3em;font-weight:600}.post-full-content h2+h3{margin-top:.7em}@media (max-width:800px){.post-full-content h3{margin-bottom:.3em;font-size:2.4rem;line-height:1.3em}}.post-full-content h4{margin:.5em 0 .2em;font-size:2.5rem;font-weight:600}.post-full-content h2+h4{margin-top:.7em}.post-full-content h3+h4{margin-top:0}@media (max-width:800px){.post-full-content h4{margin-bottom:.3em;font-size:2.4rem;line-height:1.3em}}.post-full-content h5{display:block;margin:.5em 0;padding:.4em 1em .9em;border:0;color:var(--blue);font-family:Georgia,serif;font-size:3.2rem;line-height:1.35em;text-align:center}@media (min-width:1180px){.post-full-content h5{max-width:1060px;width:100vw}}@media (max-width:800px){.post-full-content h5{margin-bottom:1em;margin-left:1.3em;padding:0 0 .5em;font-size:2.4rem;text-align:initial}}.post-full-content h6{margin:.5em 0 .2em;font-size:2rem;font-weight:700}@media (max-width:800px){.post-full-content h6{font-size:1.8rem;line-height:1.4em}}.footnotes-sep{margin-bottom:30px}.footnotes{font-size:1.5rem}.footnotes p{margin:0}.footnote-backref{color:var(--blue)!important;font-size:1.2rem;font-weight:700;text-decoration:none!important;box-shadow:none!important}@media (max-width:1170px){.post-full-image{margin:25px -6vw 50px;border-radius:0}.post-full-image img{max-width:1170px}}@media (max-width:700px){.post-full-image{margin:25px -5vw}}@media (max-width:500px){.post-full-meta{font-size:1.2rem;line-height:1.3em}.post-full-title{margin-top:.2em;font-size:4.2rem;line-height:1.05em}.post-full-image{margin-top:5px;margin-bottom:5vw}.post-full-content{padding:0}.post-full-content:after,.post-full-content:before{display:none}}.post-full-content table{display:inline-block;overflow-x:auto;margin:.5em 0 2.5em;max-width:100%;width:auto;border-spacing:0;border-collapse:collapse;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;white-space:nowrap;vertical-align:top;-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-size:10px 100%,10px 100%;background-repeat:no-repeat}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-size:20px 100%;background-repeat:no-repeat}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-size:20px 100%;background-repeat:no-repeat}.post-full-content table th{color:var(--darkgrey);font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase;background-color:#f4f8fb}.post-full-content table td,.post-full-content table th{padding:6px 12px;border:1px solid #e2ecf3}.post-full-byline{display:flex;justify-content:space-between;margin:35px 0 0;padding-top:15px;border-top:1px solid #e4eaed}.post-full-byline-content{flex-grow:1;display:flex;align-items:flex-start}.post-full-byline-content .author-list{justify-content:flex-start;padding:0 12px 0 0}.post-full-byline-meta{margin:2px 0 0;color:#90a2aa;font-size:1.2rem;line-height:1.2em;letter-spacing:.2px;text-transform:uppercase}.post-full-byline-meta h4{margin:0 0 3px;font-size:1.3rem;line-height:1.4em;font-weight:500}.post-full-byline-meta h4 a{color:#2c3036}.post-full-byline-meta h4 a:hover{color:var(--darkgrey)}.post-full-byline-meta .bull{display:inline-block;margin:0 4px;opacity:.6}.author-avatar{display:block;overflow:hidden;margin:0 -4px;width:40px;height:40px;border:2px solid #fff;border-radius:100%;transition:all .5s cubic-bezier(.4,.01,.165,.99) .7s}.author-list-item .author-card{position:absolute;bottom:130%;left:50%;z-index:600;display:flex;justify-content:space-between;margin-left:-200px;width:400px;font-size:1.4rem;line-height:1.5em;background:#fff;border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.06);opacity:0;transition:all .35s cubic-bezier(.4,.01,.165,.99);transform:scale(.98) translateY(15px);pointer-events:none}.author-list-item .author-card:before{content:"";position:absolute;top:100%;left:50%;display:block;margin-left:-8px;width:0;height:0;border-top:8px solid #fff;border-right:8px solid transparent;border-left:8px solid transparent}.author-list-item .author-card.hovered{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}.author-card{padding:20px 20px 22px}.author-card .author-info{flex:1 1 auto;padding:0 0 0 20px}.author-card .author-info h2{margin:8px 0 0;font-size:1.6rem}.author-card .author-info p{margin:4px 0 0;color:#5c7078}.author-card .author-info .bio h2{margin-top:0}.author-card .author-info .bio p{margin-top:.8em}.author-card .author-profile-image{flex:0 0 60px;margin:0;width:60px;height:60px;border:none}.basic-info .avatar-wrapper{position:relative;margin:0;width:60px;height:60px;border:none;background:rgba(229,239,245,.1)}.basic-info .avatar-wrapper svg{margin:0;width:60px;height:60px;opacity:.15}@media (max-width:1170px){.author-list-item .author-card{margin-left:-50px;width:430px}.author-list-item .author-card:before{left:50px}}@media (max-width:650px){.author-list-item .author-card{display:none}}@media (max-width:500px){.author-avatar{width:36px;height:36px}.post-full-byline{margin-top:20px}.post-full-byline-meta{font-size:1.2rem}.post-full-byline-meta h4{margin-bottom:2px;font-size:1.2rem}}.subscribe-form{margin:1.5em 0;padding:6.5vw 7vw 8vw;border:1px solid #e4eaed;text-align:center;background:linear-gradient(#fbfdfe,#f4f8fb);border-radius:3px}.subscribe-form-title{margin:0 0 3px;padding:0;color:var(--darkgrey);font-size:3.5rem;line-height:1;font-weight:600}.subscribe-form-description{margin-bottom:.2em 0 1em;color:var(--midgrey);font-size:2.1rem;line-height:1.55em}.subscribe-form form{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;max-width:460px}.subscribe-form .form-group{align-self:stretch;display:flex}.subscribe-email{display:block;padding:10px;width:100%;border:1px solid #dbe3e7;color:var(--midgrey);font-size:1.8rem;line-height:1em;font-weight:400;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;border-radius:5px;transition:border-color .15s linear;-webkit-appearance:none}.subscribe-form button{position:relative;display:inline-block;margin:0 0 0 10px;padding:0 20px;height:43px;outline:none;color:#fff;font-size:1.5rem;line-height:39px;font-weight:400;text-align:center;background:linear-gradient(#50b6ef,#299fe0 60%,#299fe0 90%,#37a5e2);border-radius:5px;-webkit-font-smoothing:subpixel-antialiased}.subscribe-form button:active,.subscribe-form button:focus{background:#209bdf}.subscribe-form .button-loader,.subscribe-form .message-error,.subscribe-form .message-success{display:none}.subscribe-form .loading .button-content{visibility:hidden}.subscribe-form .loading .button-loader{position:absolute;top:0;left:50%;display:inline-block;margin-left:-19px;transform:scale(.7)}.subscribe-form .button-loader svg path,.subscribe-form .button-loader svg rect{fill:#fff}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error,.subscribe-form .success .message-success{margin:1em auto 0;max-width:400px;color:var(--red);font-size:1.6rem;line-height:1.5em;text-align:center}.subscribe-form .success .message-success{display:block;color:#96c02d}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{display:block}@media (max-width:650px){.subscribe-form-title{font-size:2.4rem}.subscribe-form-description{font-size:1.6rem}}@media (max-width:500px){.subscribe-form form{flex-direction:column}.subscribe-form .form-group{flex-direction:column;width:100%}.subscribe-form button{margin:10px 0 0;width:100%}}.post-full-comments{margin:0 auto;max-width:840px}.read-next{border-bottom:1px solid hsla(0,0%,100%,.1);background:#0a0b0c}.read-next-feed{display:flex;flex-wrap:wrap;margin:0 -25px;padding:60px 0 0}.read-next .post-card{padding-bottom:0;border-bottom:none}.read-next .post-card:after{display:none}.read-next .post-card-primary-tag{color:#fff;opacity:.6}.read-next .post-card-title{color:#fff;opacity:.8;transition:all .2s ease-in-out}.read-next .post-card:hover .post-card-image{opacity:1}.read-next .post-card-excerpt{color:hsla(0,0%,100%,.6)}.read-next .static-avatar{border-color:#000}.read-next .post-card-byline-content{color:hsla(0,0%,100%,.6)}.read-next .post-card-byline-content a{color:hsla(0,0%,100%,.8)}.read-next-card{position:relative;flex:0 1 326px;display:flex;flex-direction:column;overflow:hidden;margin:0 25px 50px;padding:25px;background:linear-gradient(#1a1c20,#0a0b0c);border-radius:3px}.read-next-card a{transition:all .2s ease-in-out}.read-next-card a:hover{text-decoration:none}.read-next-card-header h3{margin:0;color:hsla(0,0%,100%,.6);font-size:1.2rem;line-height:1em;font-weight:300;letter-spacing:.4px;text-transform:uppercase}.read-next-card-header h3 a{color:#fff;font-weight:500;text-decoration:none;opacity:.8}.read-next-card-header h3 a:hover{opacity:1}.read-next-card-content{font-size:1.7rem}.read-next-card-content ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.read-next-card-content li{display:flex;flex-direction:column;align-items:flex-start;margin:0;padding:20px 0;border-bottom:hsla(0,0%,100%,.1)}.read-next-card-content li:last-of-type{padding-bottom:5px;border:none}.read-next-card-content h4{margin:0;font-size:1.6rem;line-height:1.35em;font-weight:600}.read-next-card-content li a{display:block;color:#fff;opacity:.8}.read-next-card-content li a:hover{opacity:1}.read-next-card-excerpt{overflow:hidden;max-width:100%;font-size:1.4rem;line-height:1.2em;text-overflow:ellipsis}.read-next-card-meta{margin-top:2px;font-size:1.2rem;line-height:1.4em;font-weight:400}.read-next-card-meta p{margin:0;color:hsla(0,0%,100%,.6)}.read-next-card-footer{position:relative;margin:40px 0 5px}.read-next-card-footer a{padding:7px 12px 8px 14px;border:1px solid hsla(0,0%,100%,.6);color:hsla(0,0%,100%,.6);font-size:1.3rem;border-radius:999px;transition:all .35s ease-in-out}.read-next-card-footer a:hover{border-color:var(--yellow);color:var(--yellow);text-decoration:none}@media (max-width:1170px){.read-next-card{flex:1 1 261px;margin-bottom:5vw}}@media (max-width:650px){.read-next-feed{flex-direction:column;padding:25px 0 0}.read-next-card{flex:1 1 auto;margin:0 25px;padding:0;background:none}.read-next .post-card{flex:1 1 auto;margin:25px;padding:25px 0 0;border-bottom:1px solid hsla(0,0%,100%,.1)}}.post-content{display:flex;flex-direction:column;align-items:center}.post-full-content .kg-image{margin:0 auto;max-width:100%}.post-full-image+.post-full-content .kg-content :first-child .kg-image{width:100%}.post-full-content .kg-width-wide .kg-image{max-width:1040px}.post-full-content .kg-width-full .kg-image{max-width:100vw}.post-full-content figure{margin:.8em 0 2.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:2em}.post-full-content figure img{margin:0}.post-full-content figcaption{margin:1em auto 0;color:#5c7078;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:75%;line-height:1.5em;text-align:center;max-width:1040px}.kg-width-full figcaption{padding:0 1.5em}.kg-embed-card{display:flex;flex-direction:column;align-items:center;width:100%}.kg-embed-card .fluid-width-video-wrapper{margin:0}@media (max-width:1040px){.post-full-content .kg-width-full .kg-image{width:100vw}}.kg-gallery-container{display:flex;flex-direction:column;max-width:1040px;width:100vw}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}.kg-gallery-image img{display:block;margin:0;width:100%;height:100%}.kg-gallery-row:not(:first-of-type){margin:.75em 0 0}.kg-gallery-image:not(:first-of-type){margin:0 0 0 .75em}.kg-gallery-card+.kg-gallery-card,.kg-gallery-card+.kg-image-card.kg-width-wide,.kg-image-card.kg-width-wide+.kg-gallery-card,.kg-image-card.kg-width-wide+.kg-image-card.kg-width-wide{margin:-2.25em 0 3em}.kg-code-card{width:100%}.kg-code-card pre{margin:0}.kg-bookmark-card{width:100%}.kg-card+.kg-bookmark-card{margin-top:0}.post-full-content .kg-bookmark-container{display:flex;min-height:148px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;border-radius:3px}.post-full-content .kg-bookmark-container,.post-full-content .kg-bookmark-container:hover{color:var(--darkgrey);text-decoration:none;box-shadow:0 2px 5px -1px rgba(0,0,0,.15),0 0 1px rgba(0,0,0,.09)}.kg-bookmark-content{flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:20px}.kg-bookmark-title{color:#303a3e;font-size:1.6rem;line-height:1.5em;font-weight:600;transition:color .2s ease-in-out}.post-full-content .kg-bookmark-container:hover .kg-bookmark-title{color:var(--blue)}.kg-bookmark-description{display:-webkit-box;overflow-y:hidden;margin-top:12px;max-height:48px;color:#5c7078;font-size:1.5rem;line-height:1.5em;font-weight:400;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kg-bookmark-thumbnail{position:relative;min-width:33%;max-height:100%}.kg-bookmark-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:0 3px 3px 0;-o-object-fit:cover;object-fit:cover}.kg-bookmark-metadata{display:flex;flex-wrap:wrap;align-items:center;margin-top:14px;color:var(--darkgrey);font-size:1.5rem;font-weight:500}.post-full-content .kg-bookmark-icon{margin-right:8px;width:22px;height:22px}.kg-bookmark-author{line-height:1.5em}.kg-bookmark-author:after{content:"•";margin:0 6px}.kg-bookmark-publisher{overflow:hidden;max-width:240px;line-height:1.5em;text-overflow:ellipsis;white-space:nowrap;color:#5c7078;font-weight:400}@media (max-width:800px){.post-full-content figure{margin:.2em 0 1.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:.9em}}@media (max-width:500px){.post-full-content .kg-width-full,.post-full-content .kg-width-wide{margin-right:-5vw;margin-left:-5vw}.post-full-content figcaption{margin-bottom:.4em}.post-full-content .kg-bookmark-container{flex-direction:column}.kg-bookmark-description,.kg-bookmark-metadata,.kg-bookmark-title{font-size:1.4rem;line-height:1.5em}.post-full-content .kg-bookmark-icon{width:18px;height:18px}.kg-bookmark-thumbnail{order:1;min-height:160px;width:100%}.kg-bookmark-thumbnail img{border-radius:3px 3px 0 0}.kg-bookmark-content{order:2}}.author-header{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;padding:10vw 0 10px}.site-archive-header .author-header{align-items:center}.site-archive-header .no-image .author-header{padding-bottom:20px}.author-header-content{display:flex;flex-direction:column;justify-content:center;margin:5px 0 0 30px}.site-header-content .author-profile-image{z-index:10;flex-shrink:0;margin:-4px 0 0;width:110px;height:110px;box-shadow:0 0 0 6px hsla(0,0%,100%,.1)}.author-header-content .author-bio{z-index:10;flex-shrink:0;margin:6px 0 0;max-width:46em;font-size:2rem;line-height:1.3em;font-weight:400;opacity:.8}.author-header-content .author-meta{z-index:10;flex-shrink:0;display:flex;align-items:center;margin:0 0 0 1px;font-size:1.2rem;font-weight:400;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap}.author-header-content .social-link:first-of-type{padding-left:4px}.no-image .author-header-content .author-bio,.no-image .author-header-content .author-meta{color:var(--midgrey);opacity:1}.author-social-link a{color:#fff;font-weight:600}.no-image .author-social-link a{color:var(--darkgrey)}.author-social-link a:hover{opacity:1}.author-social-link{display:inline-block;margin:0;padding:6px 0}.author-location+.author-stats:before,.author-social-link+.author-social-link:before,.author-stats+.author-social-link:before{content:"\2022";display:inline-block;margin:0 12px;color:#fff;opacity:.6}.no-image .author-location+.author-stats:before,.no-image .author-social-link+.author-social-link:before,.no-image .author-stats+.author-social-link:before{color:var(--midgrey)}@media (max-width:700px){.author-location,.author-stats,.author-stats+.author-social-link:first-of-type:before{display:none}}@media (max-width:500px){.author-header{padding:10px 0 0}.no-image .author-header{padding-bottom:10px}.author-header-content{align-items:center;margin:16px 0 0}.site-header-content .author-profile-image{width:96px;height:96px}.author-header-content .author-bio{font-size:1.8rem;line-height:1.3em;letter-spacing:0;text-align:center}.author-header-content .author-meta{margin-top:8px}.author-location+.author-stats:before,.author-social-link+.author-social-link:before,.author-stats+.author-social-link:before{display:inline;margin:0 6px}}.error-content{padding:14vw 4vw 6vw}.site-nav-center{display:flex;justify-content:center;align-items:center;padding:10px 0;text-align:center}.site-nav-center .site-nav-logo{margin-right:0}.error-message{padding-bottom:10vw;border-bottom:1px solid #e4eaed;text-align:center}.error-code{margin:0;color:var(--lightgrey);font-size:12vw;line-height:1em;letter-spacing:-5px;opacity:.75}.error-description{margin:0;color:var(--midgrey);font-size:3rem;line-height:1.3em;font-weight:400}.error-link{display:inline-block;margin-top:5px}@media (min-width:940px){.error-content .post-card{margin-bottom:0;padding-bottom:0;border-bottom:none}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:11.2rem}.error-message{padding-bottom:16vw}.error-description{margin:5px 0 0;font-size:1.8rem}}@media (max-width:500px){.error-content{padding-top:28vw}.error-message{padding-bottom:14vw}}.subscribe-notification{position:fixed;top:0;right:0;left:0;z-index:9000;padding:20px 0;color:#fff;text-align:center;background:var(--green);transition:all .35s cubic-bezier(.19,1,.22,1) .5s;transform:translateY(-175%)}.subscribe-notification.subscribe-failure-message{background:var(--red)}.subscribe-failure .subscribe-failure-message,.subscribe-success .subscribe-success-message{visibility:visible;transform:translateY(0)}.subscribe-notification.close{visibility:hidden;transition:all 1.35s cubic-bezier(.19,1,.22,1);transform:translateY(-175%)}.subscribe-notification .subscribe-close-button{left:0;top:0;width:100%;height:100%}.subscribe-notification .subscribe-close-button:after,.subscribe-notification .subscribe-close-button:before{top:31px;right:20px;width:18px;height:2px}.subscribe-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.subscribe-close-button{position:absolute;top:16px;right:20px;z-index:2000;display:block;width:40px;height:40px}.subscribe-close-button:before{transform:rotate(45deg)}.subscribe-close-button:after,.subscribe-close-button:before{content:"";position:absolute;top:20px;right:4px;display:block;width:32px;height:1px;background:#fff;opacity:.8}.subscribe-close-button:after{transform:rotate(-45deg)}.subscribe-close-button:hover,.subscribe-close-overlay:hover{cursor:default}.subscribe-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;justify-content:center;align-items:center;background:rgba(9,10,11,.97);opacity:0;transition:opacity .2s ease-in;pointer-events:none}.subscribe-overlay:target{z-index:2001;opacity:1;pointer-events:auto}.subscribe-overlay-content{position:relative;margin:0 0 5vw;padding:4vw;color:#fff;text-align:center}.subscribe-overlay .subscribe-form{border:none;color:#fff;background:none}.subscribe-overlay-logo{position:fixed;top:23px;left:30px;height:30px}.subscribe-overlay-title{display:inline-block;margin:0 0 10px;font-size:5.2rem;line-height:1.15em}.subscribe-overlay-description{margin:0 auto 50px;max-width:650px;color:#fff;font-family:Georgia,serif;font-size:2.4rem;line-height:1.3em;font-weight:300;opacity:.8}.subscribe-overlay form{display:flex;justify-content:center;align-items:center;margin:0 auto;max-width:540px}.subscribe-overlay .form-group{flex-grow:1}.subscribe-overlay .subscribe-email{display:block;padding:14px 20px;width:100%;border:none;color:var(--midgrey);font-size:2rem;line-height:1em;font-weight:400;letter-spacing:.5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;border-radius:8px;transition:border-color .15s linear;-webkit-appearance:none}.subscribe-email:focus{outline:0;border-color:#bfcdd5}.subscribe-overlay button{display:inline-block;margin:0 0 0 15px;padding:0 25px;height:52px;outline:none;color:#fff;font-size:1.7rem;line-height:38px;font-weight:400;text-align:center;background:linear-gradient(#50b6ef,#299fe0 60%,#299fe0 90%,#37a5e2);border-radius:8px;-webkit-font-smoothing:subpixel-antialiased}.subscribe-overlay button:active,.subscribe-overlay button:focus{background:#209bdf}.subscribe-overlay .loading .button-loader{top:5px}@media (max-width:500px){.subscribe-overlay button{margin:12px 0 0}}.site-footer{position:relative;padding-top:20px;padding-bottom:60px;color:#fff;background:#0a0b0c}.site-footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:1.3rem}.site-footer-content,.site-footer-content a{color:hsla(0,0%,100%,.7)}.site-footer-content a:hover{color:#fff;text-decoration:none}.site-footer-nav{display:flex}.site-footer-nav a{position:relative;margin-left:20px}.site-footer-nav a:before{content:"";position:absolute;top:11px;left:-11px;display:block;width:2px;height:2px;background:#fff;border-radius:100%}.site-footer-nav a:first-of-type:before{display:none}@media (max-width:650px){.site-footer-content{flex-direction:column}.site-footer-nav a:first-child{margin-left:0}}@media (prefers-color-scheme:dark){body{color:hsla(0,0%,100%,.75);background:var(--darkmode)}img{opacity:.9}.site-header-background:before{background:rgba(0,0,0,.6)}.post-feed{background:var(--darkmode)}.post-card,.post-card:hover{border-bottom-color:#17191c}.author-profile-image{background:var(--darkmode)}.post-card-byline-content a{color:hsla(0,0%,100%,.75)}.post-card-byline-content a:hover{color:#fff}.post-card-image{background:var(--darkmode)}.post-card-title{color:hsla(0,0%,100%,.85)}.post-card-excerpt{color:#90a2aa}.author-avatar,.static-avatar{border-color:#1a1c20}.page-template .site-main,.post-full-content,.post-template .site-main,.site-main{background:var(--darkmode)}.post-full-title{color:hsla(0,0%,100%,.9)}.post-full-custom-excerpt{color:#90a2aa}.post-full-image{background-color:#17191c}.post-full-byline{border-top-color:#272a30}.post-full-byline-meta h4 a{color:hsla(0,0%,100%,.75)}.post-full-byline-meta h4 a:hover{color:#fff}.author-list-item .author-card{background:#0e0f11;box-shadow:0 12px 26px rgba(0,0,0,.4)}.author-list-item .author-card:before{border-top-color:#0e0f11}.no-image .author-social-link a{color:hsla(0,0%,100%,.75)}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h6{color:hsla(0,0%,100%,.9)}.post-full-content a{color:#fff;box-shadow:inset 0 -1px 0 #fff}.post-full-content em,.post-full-content strong{color:#fff}.post-full-content code{color:#fff;background:#000}hr{border-top-color:#17191c}.post-full-content hr:after{background:#17191c;box-shadow:var(--darkmode) 0 0 0 5px}.post-full-content figcaption{color:hsla(0,0%,100%,.6)}.post-full-content table td:first-child{background-image:linear-gradient(90deg,var(--darkmode) 50%,rgba(5,5,6,0))}.post-full-content table td:last-child{background-image:linear-gradient(270deg,var(--darkmode) 50%,rgba(5,5,6,0))}.post-full-content table th{color:hsla(0,0%,100%,.85);background-color:#17191c}.post-full-content table td,.post-full-content table th{border:1px solid #17191c}.post-full-content .kg-bookmark-container,.post-full-content .kg-bookmark-container:hover{color:hsla(0,0%,100%,.75);box-shadow:0 0 1px hsla(0,0%,100%,.9)}.post-full-content input{color:#303a3e}.kg-bookmark-title{color:#fff}.kg-bookmark-description,.kg-bookmark-metadata{color:hsla(0,0%,100%,.75)}.site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:var(--darkmode)}.site-archive-header .no-image .site-header-content{border-bottom-color:#272a30}.site-header-content .author-profile-image{box-shadow:0 0 0 6px hsla(0,0%,100%,.04)}.subscribe-form{border:none;background:linear-gradient(#000,#000)}.subscribe-form-title{color:hsla(0,0%,100%,.9)}.subscribe-form p{color:hsla(0,0%,100%,.7)}.subscribe-email{border-color:#121417;color:hsla(0,0%,100%,.9);background:#0b0c0e}.subscribe-email:focus{border-color:#3e434c}.subscribe-form button{opacity:.9}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{color:#ed694d}.subscribe-form .success .message-success{color:#abcf51}} +a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{display:block;max-width:100%;height:auto}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}kbd{padding:3px 5px;font-family:var(--font-mono);font-size:1.5rem;background:#f6f8fa;border:1px solid rgba(124,139,154,.25);border-radius:6px;box-shadow:inset 0 -1px 0 rgba(124,139,154,.25)}@media (max-width:600px){kbd{font-size:1.3rem}}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{color:#35373a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#daf2fd}::selection{text-shadow:none;background:#daf2fd}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #f0f0f0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}::not(.gh-content) blockquote,::not(.gh-content) dl,::not(.gh-content) ol,::not(.gh-content) p,::not(.gh-content) ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{padding-left:.3em;line-height:1.6em}li+li{margin-top:.5em}dt{float:left;margin:0 20px 0 0;width:120px;color:#daf2fd;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:#daf2fd}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#15171a;text-decoration:none}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:600;text-rendering:optimizeLegibility;letter-spacing:-.01em}h1{margin:0 0 .5em;font-size:4.8rem;font-weight:700;letter-spacing:-.015em}@media (max-width:600px){h1{font-size:2.8rem}}h2{margin:1.5em 0 .5em;font-size:2.8rem;font-weight:700}@media (max-width:600px){h2{font-size:2.3rem}}h3{margin:1.5em 0 .5em;font-size:2.4rem;font-weight:600}@media (max-width:600px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:600px){h4{font-size:1.7rem}}h5{font-size:2rem}h5,h6{margin:1.5em 0 .5em}h6{font-size:1.8rem}:root{--color-green:#a4d037;--color-yellow:#fecd35;--color-red:#f05230;--color-darkgrey:#15171a;--color-midgrey:#738a94;--color-lightgrey:#c5d2d9;--color-wash:#e5eff5;--color-darkmode:#151719;--font-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-serif:Georgia,Times,serif;--font-mono:Menlo,Courier,monospace}.viewport{display:flex;flex-direction:column;min-height:100vh}.site-content{flex-grow:1}.outer{position:relative;padding:0 4vmin}.inner{margin:0 auto;max-width:1200px;width:100%}.site-header{position:relative;color:#fff;background:var(--ghost-accent-color)}.site-header-cover{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.site-header-content{position:relative;z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6vw 3vw;min-height:200px;max-height:340px;text-align:center}.site-title{z-index:10;margin:0 0 .15em;padding:0}.site-logo{max-height:55px}.site-header-content p{z-index:10;max-width:600px;margin:0 auto;line-height:1.2em;opacity:.8}@media (max-width:600px){.site-header-content p{max-width:80vmin;font-size:1.8rem}}.site-home-header{position:relative;z-index:1000;overflow:hidden}.site-header-content{padding:18vmin 4vmin;font-size:2.5rem;font-weight:400;color:#fff;background:var(--ghost-accent-color)}.site-header-content.large{padding-top:28vmin;padding-bottom:28vmin}.gh-head{padding:1vmin 4vmin;font-size:1.6rem;line-height:1.3em;color:#fff;background:var(--ghost-accent-color)}.gh-head a{color:inherit;text-decoration:none}.gh-head-inner{display:grid;grid-gap:2.5vmin;grid-template-columns:auto auto 1fr;grid-auto-flow:row dense}.gh-head-brand{display:flex;align-items:center;height:40px;max-width:200px;text-align:center;word-break:break-all}.gh-head-logo{display:block;padding:10px 0;font-weight:700;font-size:2rem;line-height:1.2em;letter-spacing:-.02em}.gh-head-logo img{max-height:26px}.gh-head-menu{display:flex;align-items:center;font-weight:500}.gh-head-menu .nav{display:inline-flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0}.gh-head-menu .nav li{margin:0 2.5vmin 0 0;padding:0}.gh-head-menu .nav a{display:inline-block;padding:5px 0;opacity:.8}.gh-head-menu .nav a:hover{opacity:1}.gh-head-actions{display:flex;list-style:none;text-align:right}.gh-head-actions,.gh-head-actions-list{justify-content:flex-end;align-items:center}.gh-head-actions-list{display:inline-flex;flex-wrap:wrap}.gh-head-actions-list a:not([class]){display:inline-block;margin:0 0 0 1.5vmin;padding:5px 0}.gh-social{margin:0 1.5vmin 0 0}.gh-social a{opacity:.8}.gh-social a+a{margin-left:.8rem}.gh-social a:hover{opacity:1}.gh-social svg{height:22px;width:22px;fill:#fff}.gh-social-facebook svg{height:20px;width:20px}a.gh-head-button{display:block;padding:8px 15px;color:var(--button-text-color,var(--color-darkgrey));font-weight:500;letter-spacing:-.015em;font-size:1.5rem;line-height:1em;background:var(--button-bg-color,#fff);border-radius:30px}.gh-burger{position:relative;display:none;cursor:pointer}.gh-burger-box{position:relative;display:flex;align-items:center;justify-content:center;width:33px;height:33px}.gh-burger-inner{width:100%;height:100%}.gh-burger-box:before{transition:transform .3s cubic-bezier(.2,.6,.3,1),width .3s cubic-bezier(.2,.6,.3,1)}.gh-burger-box:before,.gh-burger-inner:after,.gh-burger-inner:before{position:absolute;display:block;top:0;left:0;bottom:0;margin:auto;content:"";width:100%;height:1px;background:currentcolor;will-change:transform,width}.gh-burger-inner:after,.gh-burger-inner:before{transition:transform .25s cubic-bezier(.2,.7,.3,1),width .25s cubic-bezier(.2,.7,.3,1)}.gh-burger-inner:before{transform:translatey(-6px)}.gh-burger-inner:after{transform:translatey(6px)}body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner:before{transform:translatey(-8px)}body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner:after{transform:translatey(8px)}.gh-head-open .gh-burger-box:before{width:0;transform:translatex(19px);transition:transform .2s cubic-bezier(.2,.7,.3,1),width .2s cubic-bezier(.2,.7,.3,1)}.gh-head-open .gh-burger-inner:before{width:26px;transform:translatex(6px) rotate(135deg)}.gh-head-open .gh-burger-inner:after{width:26px;transform:translatex(6px) rotate(-135deg)}@media (max-width:900px){.gh-burger{display:inline-block}#gh-head{transition:all .4s ease-out;overflow:hidden}#gh-head .gh-head-inner{height:100%;grid-template-columns:1fr}#gh-head .gh-head-brand{position:relative;z-index:10;grid-column-start:auto;max-width:none;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.home-template #gh-head.has-cover .gh-head-brand{justify-content:flex-end}#gh-head .gh-head-menu{align-self:center;display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 0 10vh;font-weight:300;font-size:3.6rem;line-height:1.1em}#gh-head .gh-head-menu .nav li{margin:5px 0}#gh-head .gh-head-menu .nav a{padding:8px 0}#gh-head .gh-head-menu .nav{display:flex;flex-direction:column;align-items:center}#gh-head .gh-head-actions{padding:20px 0;justify-content:center;text-align:left}#gh-head .gh-head-actions a{margin:0 10px}#gh-head .gh-head-actions,#gh-head .gh-head-menu{display:none}.gh-head-open{overflow:hidden;height:100vh}.gh-head-open #gh-head{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3999999;overflow-y:scroll}.gh-head-open #gh-head .gh-head-inner{grid-template-rows:auto 1fr auto}.gh-head-open #gh-head .gh-head-actions,.gh-head-open #gh-head .gh-head-menu{display:flex}}@media (max-width:600px){#gh-head .gh-head-menu{font-size:6vmin}}.home-template .gh-head.has-cover{position:absolute;top:0;right:0;left:0;z-index:2000;background:transparent}.home-template.gh-head-open .gh-head{background:var(--ghost-accent-color)}.home-template .gh-head.has-cover .gh-head-logo{display:none}.home-template .gh-head.has-cover .gh-head-menu{margin-left:-2.5vmin}.post-feed{position:relative;display:grid;grid-gap:4vmin;grid-template-columns:1fr 1fr 1fr;padding:4vmin 0}.post-feed.list{row-gap:6vmin;max-width:940px;margin:2vmin auto 0}@media (max-width:1000px){.post-feed{grid-template-columns:1fr 1fr}}@media (max-width:700px){.post-feed{grid-template-columns:1fr;grid-gap:40px}}.post-card{position:relative;flex:1 1 301px;display:flex;flex-direction:column;min-height:220px;background-size:cover;word-break:break-word}@media (max-width:700px){.post-card{min-height:auto}}.post-card-image-link{position:relative;display:block;overflow:hidden;border-radius:3px}.post-card-image{width:100%;height:200px;background:var(--color-lightgrey) no-repeat 50%;-o-object-fit:cover;object-fit:cover}.post-card-content-link{position:relative;display:block;color:var(--color-darkgrey)}.post-card-content-link:hover{text-decoration:none}.post-card-header{margin:20px 0 0}.post-feed .no-image .post-card-content-link{padding:0}.no-image .post-card-header{margin-top:0}.post-card-primary-tag{margin:0 0 .2em;color:var(--ghost-accent-color);font-size:1.2rem;font-weight:500;letter-spacing:.2px;text-transform:uppercase}.post-card-title{margin:0 0 .4em;font-size:2.4rem;transition:color .2s ease-in-out}.no-image .post-card-title{margin-top:0}.has-serif-title .post-card-title{font-family:var(--font-serif)}.post-card-content{flex-grow:1;display:flex;flex-direction:column}.post-card-excerpt{max-width:56em;color:#60757e;font-family:var(--font-serif)}.has-sans-body .post-card-excerpt{font-family:var(--font-sans-serif)}.post-card-excerpt p{margin-bottom:1em;display:-webkit-box;overflow-y:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}.post-card-meta{display:flex;align-items:center;padding:0}.author-profile-image,.avatar-wrapper{display:block;width:100%;height:100%;background:#e4eaed;border-radius:100%;-o-object-fit:cover;object-fit:cover}.post-card-meta .avatar-wrapper,.post-card-meta .profile-image-wrapper{position:relative}.author-list{display:flex;flex-wrap:wrap;margin:0 0 0 4px;padding:0;list-style:none}.author-list-item{position:relative;flex-shrink:0;margin:0;padding:0}.static-avatar{display:block;overflow:hidden;margin:0 0 0 -6px;width:36px;height:36px;border-radius:100%;box-shadow:0 0 0 1px hsla(0,0%,100%,.2)}.post-card-byline-content{flex:1 1 50%;display:flex;flex-direction:column;margin:0 0 0 8px;color:#90a2aa;font-size:1.4rem;line-height:1.2em;font-weight:400}.post-card-byline-content span{margin:0}.post-card-byline-content a{color:#373c44;font-weight:600}.post-card-byline-date{font-size:1.3rem;line-height:1.5em}.post-card-byline-date .bull{display:inline-block;margin:0 2px;opacity:.6}.single-author-byline{display:flex;flex-direction:column;margin-left:5px;color:#5c7078;font-size:1.3rem;line-height:1.4em;font-weight:500}.single-author{display:flex;align-items:center}.single-author .static-avatar{margin-left:-2px}.single-author-name{display:inline-block}@media (min-width:701px){.post-feed.list .post-card-large{grid-column:1/span 3;display:grid;grid-gap:4vmin;grid-template-columns:3fr 5fr;min-height:auto;border-top:0}.post-feed.list .post-card-large.no-image{grid-template-columns:1fr}.post-feed.list .post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-feed.list .post-card-large .post-card-content{justify-content:flex-start;margin-top:-6px}}@media (min-width:1001px){.post-card-large{grid-column:1/span 3;display:grid;grid-gap:4vmin;grid-template-columns:1fr 1fr 1fr;min-height:280px;border-top:0}.post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-card-large .post-card-image-link{position:relative;grid-column:1/span 2;margin-bottom:0;min-height:380px}.post-feed.list .post-card-large .post-card-image-link{grid-column:1/span 1;height:-webkit-max-content;height:-moz-max-content;height:max-content;min-height:auto}.post-feed.list .post-card-large .post-card-image-link:after{content:"";display:block;padding-bottom:60%}.post-card-large .post-card-image{position:absolute;width:100%;height:100%}.post-card-large .post-card-content{justify-content:center}.post-card-large .post-card-title{margin-top:0;font-size:3.2rem}.post-feed.list .post-card-large .post-card-title{font-size:2.4rem}.post-card-large .post-card-excerpt p{font-size:1.7rem;line-height:1.55em;-webkit-line-clamp:8}}@media (max-width:500px){.post-card-title{font-size:1.9rem}.post-card-excerpt{font-size:1.6rem}}.article{padding:8vmin 0;word-break:break-word}.article-header{padding:0 0 6vmin}.article-tag{display:flex;justify-content:flex-start;align-items:center;margin:0 0 .5rem;color:var(--color-midgrey);font-size:1.3rem;line-height:1.4em;letter-spacing:.02em;font-weight:600;text-transform:uppercase}.article-tag a{color:var(--ghost-accent-color)}.article-title{color:#0a0b0c}.has-serif-title .article-title{font-family:var(--font-serif)}.article-excerpt{margin:0 0 1rem;font-size:2rem;line-height:1.4em;opacity:.6}.gh-canvas .article-image{grid-column:wide-start/wide-end;width:100%;margin:6vmin 0 0}.image-full .article-image{grid-column:full-start/full-end}.image-small .article-image{grid-column:main-start/main-end}.gh-canvas .article-image img{display:block;margin-left:auto;margin-right:auto;width:100%}@media (max-width:600px){.article-excerpt{font-size:1.8rem}}.gh-canvas{display:grid;grid-template-columns:[full-start] minmax(4vmin,auto) [wide-start] minmax(auto,240px) [main-start] min(720px,calc(100% - 8vw)) [main-end] minmax(auto,240px) [wide-end] minmax(4vmin,auto) [full-end]}.gh-canvas>*{grid-column:main-start/main-end}.kg-width-wide{grid-column:wide-start/wide-end}.kg-width-full{grid-column:full-start/full-end}.kg-width-full img{width:100%}.gh-content>*+*{margin-top:4vmin;margin-bottom:0}.gh-content>[id]{margin:0;color:var(--color-darkgrey)}.has-serif-title .gh-content>[id]{font-family:var(--font-serif)}.gh-content>[id]:not(:first-child){margin:2em 0 0}.gh-content>[id]+*{margin-top:1.5rem!important}.gh-content>blockquote,.gh-content>hr{position:relative;margin-top:6vmin}.gh-content>blockquote+*,.gh-content>hr+*{margin-top:6vmin!important}.gh-content a{color:var(--ghost-accent-color);text-decoration:underline;word-break:break-word}.gh-content>blockquote:not([class]),.gh-content>dl,.gh-content>ol,.gh-content>p,.gh-content>ul{font-family:var(--font-serif);font-weight:400;font-size:2.1rem;line-height:1.6em}.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-family:var(--font-serif);font-weight:400;font-size:1.9rem;line-height:1.6em}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>p,.gh-content .kg-product-card .kg-product-card-description>ul{font-size:1.7rem;line-height:1.6em}.gh-content .kg-callout-card .kg-callout-emoji{font-size:2.1rem;line-height:1.4em}.gh-content .kg-toggle-card .kg-toggle-heading-text{font-size:2rem}.has-sans-body .gh-content .kg-callout-card .kg-callout-text,.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content>ol,.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content>p,.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content>ul,.has-sans-body .gh-content>blockquote,.has-sans-body .gh-content>dl,.has-sans-body .gh-content>ol,.has-sans-body .gh-content>p,.has-sans-body .gh-content>ul{font-family:var(--font-sans)}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>ul,.gh-content .kg-toggle-card .kg-toggle-content>ol,.gh-content .kg-toggle-card .kg-toggle-content>ul,.gh-content>dl,.gh-content>ol,.gh-content>ul{padding-left:1.9em}.gh-content>blockquote:not([class]){position:relative;font-style:italic;padding:0}.gh-content>blockquote:not([class]):before{content:"";position:absolute;left:-1.5em;top:0;bottom:0;width:.3rem;background:var(--ghost-accent-color)}.gh-content :not(pre)>code{vertical-align:middle;padding:.15em .4em;border:1px solid #e1eaef;font-weight:400!important;font-size:.9em;line-height:1em;color:#15171a;background:#f0f6f9;border-radius:.25em}.gh-content pre{overflow:auto;padding:16px 20px;color:var(--color-wash);font-size:1.4rem;line-height:1.5em;background:var(--color-darkgrey);border-radius:5px;box-shadow:0 2px 6px -2px rgba(0,0,0,.1),0 0 1px rgba(0,0,0,.4)}@media (max-width:650px){.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,.gh-content>blockquote:not([class]),.gh-content>dl,.gh-content>ol,.gh-content>p,.gh-content>ul{font-size:1.7rem}.gh-content .kg-product-card .kg-product-card-description>ol,.gh-content .kg-product-card .kg-product-card-description>p,.gh-content .kg-product-card .kg-product-card-description>ul{font-size:1.5rem}.gh-content blockquote:not([class]):before{left:-4vmin}}.gh-content .kg-card+:not(.kg-card),.gh-content :not(.kg-card):not([id])+.kg-card{margin-top:6vmin;margin-bottom:0}.kg-embed-card{display:flex;flex-direction:column;align-items:center;width:100%}.kg-image-card img{margin:auto}.has-serif-title .kg-toggle-card .kg-toggle-heading-text{font-family:var(--font-serif)}.gh-content .kg-callout-card-accent a{text-decoration:underline}.kg-blockquote-alt{font-family:var(--font-serif);color:var(--color-midgrey)}.has-sans-body .kg-blockquote-alt{font-family:var(--font-sans)}.kg-card.kg-header-card.kg-style-dark{background:var(--color-darkgrey)}.kg-header-card.kg-style-light h2.kg-header-card-header{color:#0a0b0c}.has-serif-title .kg-header-card h2.kg-header-card-header{font-family:var(--font-serif)}figcaption{padding:1.5rem 1.5rem 0;text-align:center;color:rgba(0,0,0,.5);font-weight:600;font-size:1.3rem;line-height:1.4em}figcaption strong{color:rgba(0,0,0,.8)}figcaption a{color:var(--ghost-accent-color)}iframe.instagram-media{margin:6vmin auto 0!important}iframe.instagram-media+script+:not([id]){margin-top:6vmin}.kg-width-full.kg-card-hascaption{display:grid;grid-template-columns:inherit}.kg-width-wide.kg-card-hascaption img{grid-column:wide-start/wide-end}.kg-width-full.kg-card-hascaption img{grid-column:1/-1}.kg-width-full.kg-card-hascaption figcaption{grid-column:main-start/main-end}.article-comments{margin:6vmin 0 0}.footnotes-sep{margin-bottom:30px}.footnotes{font-size:1.5rem}.footnotes p{margin:0}.footnote-backref{font-size:1.2rem;font-weight:700;text-decoration:none!important;box-shadow:none!important}.post-full-content table{display:inline-block;overflow-x:auto;margin:.5em 0 2.5em;max-width:100%;width:auto;border-spacing:0;border-collapse:collapse;font-family:var(--font-sans-serif);font-size:1.6rem;white-space:nowrap;vertical-align:top;-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-size:10px 100%,10px 100%;background-repeat:no-repeat}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-size:20px 100%;background-repeat:no-repeat}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-size:20px 100%;background-repeat:no-repeat}.post-full-content table th{color:var(--color-darkgrey);font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase;background-color:#f4f8fb}.post-full-content table td,.post-full-content table th{padding:6px 12px;border:1px solid #e2ecf3}.article-byline{display:flex;justify-content:space-between;margin:20px 0 0}.article-byline-content{flex-grow:1;display:flex;align-items:center}.article-byline-content .author-list{justify-content:flex-start;padding:0 12px 0 0}.article-byline-meta{color:#738a94;font-size:1.4rem;line-height:1.2em}.article-byline-meta h4{margin:0 0 3px;font-size:1.6rem}.article-byline-meta .bull{display:inline-block;margin:0 2px;opacity:.6}.author-avatar{display:block;overflow:hidden;margin:0 -4px;width:50px;height:50px;border:2px solid #fff;border-radius:100%;transition:all .5s cubic-bezier(.4,.01,.165,.99) .7s}.basic-info .avatar-wrapper{position:relative;margin:0;width:60px;height:60px;border:none;background:rgba(229,239,245,.1)}.basic-info .avatar-wrapper svg{margin:0;width:60px;height:60px;opacity:.15}.page-template .article-title{margin-bottom:0}.footer-cta{position:relative;margin-bottom:-40px;padding:9vmin 4vmin 10vmin;color:#fff;text-align:center;background:var(--color-darkgrey)}.footer-cta.cta-alt{padding:2vmin 4vmin 12vmin;background:transparent}.footer-cta h2{margin:0 0 30px;font-size:3.2rem}.footer-cta.cta-alt h2{color:var(--color-darkgrey)}@media (max-width:600px){.footer-cta h2{font-size:2.65rem}}.footer-cta-button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:100%;max-width:500px;padding:5px 5px 5px 15px;font-size:1.8rem;color:var(--color-midgrey);background:#fff;border-radius:8px}.footer-cta.cta-alt .footer-cta-button{border:1px solid var(--color-lightgrey)}.footer-cta-button span{display:inline-block;padding:10px 15px;color:#fff;font-weight:500;background:var(--ghost-accent-color);border-radius:5px}.read-more-wrap{width:100%;padding:4vmin;margin:40px auto -40px;border-bottom:1px solid hsla(0,0%,100%,.1);background:#0a0b0c}.read-more{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:4vmin}.read-more .post-card-title{color:#fff;opacity:.8}.read-more .post-card-excerpt{color:hsla(0,0%,100%,.6)}.read-more .post-card-byline-content a{color:#fff}@media (max-width:1000px){.read-more{grid-template-columns:1fr 1fr}.read-more article:nth-child(3){display:none}}@media (max-width:700px){.read-more{grid-template-columns:1fr}.read-more article:nth-child(2){display:none}}.author-template .posts{position:relative;height:100%;display:grid;grid-template-columns:200px 1fr 1fr;grid-gap:4vmin}.author-template .posts .post-feed{grid-column:2/4;grid-template-columns:1fr 1fr}.author-profile{padding:4vmin 0}.author-profile-content{height:auto;position:-webkit-sticky;position:sticky;top:4vmin;font-size:1.4rem;line-height:1.4em}.author-profile-pic{display:block;width:150px;height:150px;-o-object-fit:cover;object-fit:cover;margin:0 0 2rem;background:#e4eaed;border-radius:50%}.author-profile h1{margin:0 0 .3em;font-size:2rem}.author-profile p{margin:0 0 1.5em;color:#60757e}.author-profile-location{margin:0 0 1.5em;font-weight:700}.author-profile-social-link{display:block;padding:0 0 5px;font-size:1.3rem;color:#60757e;text-overflow:ellipsis;overflow:hidden;max-width:100%;white-space:nowrap}.author-profile-social-link:hover{color:var(--color-darkgrey)}@media (max-width:900px){.author-template .posts .post-feed{grid-template-columns:1fr}}@media (max-width:650px){.author-template .posts{grid-template-columns:1fr;grid-gap:0}.author-template .posts .post-feed{grid-column:1/auto}.author-profile{padding-right:0}.author-profile-content{display:flex;flex-direction:column;align-items:center;text-align:center}}.tag-template .post-card-large .post-card-image-link{grid-column:2/span 2;order:2}.tag-template .post-card-large .post-card-content{order:1}.error-content{padding:14vw 4vw 6vw}.error-message{padding-bottom:10vw;text-align:center}.error-code{margin:0;color:var(--ghost-accent-color);font-size:12vw;line-height:1em;letter-spacing:-5px}.error-description{margin:0;color:var(--color-midgrey);font-size:3.2rem;line-height:1.3em;font-weight:400}.error-link{display:inline-block;margin-top:5px}@media (min-width:940px){.error-content .post-card{margin-bottom:0;padding-bottom:0;border-bottom:none}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:11.2rem}.error-message{padding-bottom:16vw}.error-description{margin:5px 0 0;font-size:1.8rem}}@media (max-width:500px){.error-content{padding-top:28vw}.error-message{padding-bottom:14vw}}.site-footer{position:relative;margin:40px 0 0;padding:40px 4vmin 140px;color:#fff;background:#0a0b0c}.site-footer .inner{display:grid;grid-gap:40px;grid-template-columns:auto 1fr auto;color:hsla(0,0%,100%,.7);font-size:1.3rem}.site-footer .copyright a{color:#fff;letter-spacing:-.015em;font-weight:500}.site-footer a{color:hsla(0,0%,100%,.7)}.site-footer a:hover{color:#fff;text-decoration:none}.site-footer-nav ul{display:flex;justify-content:center;flex-wrap:wrap;margin:0 0 20px;padding:0;list-style:none}.site-footer-nav li{display:inline-flex;align-items:center;padding:0;margin:0;line-height:2em}.site-footer-nav a{position:relative;display:inline-flex;align-items:center;margin-left:10px}.site-footer-nav li:not(:first-child) a:before{content:"";display:block;width:2px;height:2px;margin:0 10px 0 0;background:#fff;border-radius:100%}@media (max-width:800px){.site-footer .inner{max-width:500px;grid-template-columns:1fr;grid-gap:0;text-align:center}.site-footer .copyright,.site-footer .copyright a{color:#fff;font-size:1.5rem}}html.dark-mode body{color:hsla(0,0%,100%,.75);background:var(--color-darkmode)}html.dark-mode img{opacity:.9}html.dark-mode kbd{background:#212427}html.dark-mode .post-card,html.dark-mode .post-card:hover{border-bottom-color:#282b2f}html.dark-mode .post-card-byline-content a{color:hsla(0,0%,100%,.75)}html.dark-mode .post-card-byline-content a:hover{color:#fff}html.dark-mode .post-card-image{background:var(--color-darkmode)}html.dark-mode .post-card-title{color:hsla(0,0%,100%,.85)}html.dark-mode .post-card-excerpt{color:#90a2aa}html.dark-mode .post-full-content{background:var(--color-darkmode)}html.dark-mode .article-title{color:hsla(0,0%,100%,.9)}html.dark-mode .article-excerpt{color:#90a2aa}html.dark-mode .post-full-image{background-color:#282b2f}html.dark-mode .article-byline{border-top-color:#383d43}html.dark-mode .article-byline-meta h4 a{color:hsla(0,0%,100%,.75)}html.dark-mode .article-byline-meta h4 a:hover{color:#fff}html.dark-mode .no-image .author-social-link a{color:hsla(0,0%,100%,.75)}html.dark-mode .gh-content>[id]{color:hsla(0,0%,100%,.9)}html.dark-mode .gh-content pre{background:#030303}html.dark-mode .gh-content :not(pre)>code{background:#23262b;border-color:#282b2f;color:var(--color-wash)}html.dark-mode .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button),html.dark-mode .gh-content em,html.dark-mode .gh-content strong{color:#fff}html.dark-mode .gh-content code{color:#fff;background:#000}html.dark-mode hr{border-top-color:#282b2f}html.dark-mode .gh-content hr:after{background:#282b2f;box-shadow:var(--color-darkmode) 0 0 0 5px}html.dark-mode figcaption{color:hsla(0,0%,100%,.6)}html.dark-mode .gh-content table td:first-child{background-image:linear-gradient(90deg,var(--color-darkmode) 50%,rgba(21,23,25,0))}html.dark-mode .gh-content table td:last-child{background-image:linear-gradient(270deg,var(--color-darkmode) 50%,rgba(21,23,25,0))}html.dark-mode .gh-content table th{color:hsla(0,0%,100%,.85);background-color:#282b2f}html.dark-mode .gh-content table td,html.dark-mode .gh-content table th{border:1px solid #282b2f}html.dark-mode .gh-content input{color:#303a3e}html.dark-mode .site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:var(--color-darkmode)}html.dark-mode .kg-header-card.kg-style-dark{background:#0a0b0c}html.dark-mode .kg-header-card.kg-style-light{background:#202328}html.dark-mode .kg-header-card h2.kg-header-card-header,html.dark-mode .kg-header-card h3.kg-header-card-subheader{color:#fff}@media (prefers-color-scheme:dark){html.auto-color body{color:hsla(0,0%,100%,.75);background:var(--color-darkmode)}html.auto-color img{opacity:.9}html.auto-color kbd{background:#212427}html.auto-color .post-card,html.auto-color .post-card:hover{border-bottom-color:#282b2f}html.auto-color .post-card-byline-content a{color:hsla(0,0%,100%,.75)}html.auto-color .post-card-byline-content a:hover{color:#fff}html.auto-color .post-card-image{background:var(--color-darkmode)}html.auto-color .post-card-title{color:hsla(0,0%,100%,.85)}html.auto-color .post-card-excerpt{color:#90a2aa}html.auto-color .post-full-content{background:var(--color-darkmode)}html.auto-color .article-title{color:hsla(0,0%,100%,.9)}html.auto-color .article-excerpt{color:#90a2aa}html.auto-color .post-full-image{background-color:#282b2f}html.auto-color .article-byline{border-top-color:#383d43}html.auto-color .article-byline-meta h4 a{color:hsla(0,0%,100%,.75)}html.auto-color .article-byline-meta h4 a:hover{color:#fff}html.auto-color .no-image .author-social-link a{color:hsla(0,0%,100%,.75)}html.auto-color .gh-content>[id]{color:hsla(0,0%,100%,.9)}html.auto-color .gh-content pre{background:#030303}html.auto-color .gh-content :not(pre)>code{background:#23262b;border-color:#282b2f;color:var(--color-wash)}html.auto-color .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button),html.auto-color .gh-content em,html.auto-color .gh-content strong{color:#fff}html.auto-color .gh-content code{color:#fff;background:#000}html.auto-color hr{border-top-color:#282b2f}html.auto-color .gh-content hr:after{background:#282b2f;box-shadow:var(--color-darkmode) 0 0 0 5px}html.auto-color figcaption{color:hsla(0,0%,100%,.6)}html.auto-color .gh-content table td:first-child{background-image:linear-gradient(90deg,var(--color-darkmode) 50%,rgba(21,23,25,0))}html.auto-color .gh-content table td:last-child{background-image:linear-gradient(270deg,var(--color-darkmode) 50%,rgba(21,23,25,0))}html.auto-color .gh-content table th{color:hsla(0,0%,100%,.85);background-color:#282b2f}html.auto-color .gh-content table td,html.auto-color .gh-content table th{border:1px solid #282b2f}html.auto-color .gh-content input{color:#303a3e}html.auto-color .site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:var(--color-darkmode)}html.auto-color .kg-header-card.kg-style-dark{background:#0a0b0c}html.auto-color .kg-header-card.kg-style-light{background:#202328}html.auto-color .kg-header-card h2.kg-header-card-header,html.auto-color .kg-header-card h3.kg-header-card-subheader{color:#fff}} /*# sourceMappingURL=screen.css.map */ \ No newline at end of file diff --git a/assets/built/screen.css.map b/assets/built/screen.css.map index 75c05f1..e53000b 100644 --- a/assets/built/screen.css.map +++ b/assets/built/screen.css.map @@ -1 +1 @@ -{"version":3,"sources":["global.css","screen.css"],"names":[],"mappings":"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","file":"screen.css","sourcesContent":["/* Variables\n/* ---------------------------------------------------------- */\n\n:root {\n /* Colours */\n --blue: #3eb0ef;\n --green: #a4d037;\n --purple: #ad26b4;\n --yellow: #fecd35;\n --red: #f05230;\n --darkgrey: #15171A;\n --midgrey: #738a94;\n --lightgrey: #c5d2d9;\n --whitegrey: #e5eff5;\n --pink: #fa3a57;\n --brown: #a3821a;\n --darkmode: color-mod(var(--darkgrey) l(+2%));\n}\n\n/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font: inherit;\n font-size: 100%;\n vertical-align: baseline;\n}\nbody {\n line-height: 1;\n}\nol,\nul {\n list-style: none;\n}\nblockquote,\nq {\n quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: \"\";\n content: none;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\nimg {\n max-width: 100%;\n}\nhtml {\n box-sizing: border-box;\n font-family: sans-serif;\n\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nb,\nstrong {\n font-weight: bold;\n}\ni,\nem,\ndfn {\n font-style: italic;\n}\nh1 {\n margin: 0.67em 0;\n font-size: 2em;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nmark {\n background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0; /* 3 */\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n}\nbutton {\n overflow: visible;\n border: none;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n cursor: pointer; /* 3 */\n\n -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\ninput {\n line-height: normal;\n}\ninput:focus {\n outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n box-sizing: content-box; /* 2 */\n\n -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nlegend {\n padding: 0; /* 2 */\n border: 0; /* 1 */\n}\ntextarea {\n overflow: auto;\n}\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\ntd,\nth {\n padding: 0;\n}\n\n/* ==========================================================================\n Base styles: opinionated defaults\n ========================================================================== */\n\nhtml {\n overflow-x: hidden;\n overflow-y: scroll;\n font-size: 62.5%;\n\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n overflow-x: hidden;\n color: color-mod(var(--midgrey) l(-30%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n line-height: 1.6em;\n font-weight: 400;\n font-style: normal;\n letter-spacing: 0;\n text-rendering: optimizeLegibility;\n background: #fff;\n\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n text-shadow: none;\n background: color-mod(var(--blue) lightness(+30%));\n}\n\nhr {\n position: relative;\n display: block;\n width: 100%;\n margin: 2.5em 0 3.5em;\n padding: 0;\n height: 1px;\n border: 0;\n border-top: 1px solid color-mod(var(--lightgrey) l(+10%));\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n vertical-align: middle;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\ntextarea {\n resize: vertical;\n}\n\np,\nul,\nol,\ndl,\nblockquote {\n margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n padding-left: 1.3em;\n padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n margin: 0.5em 0 1em;\n}\n\nul {\n list-style: disc;\n}\n\nol {\n list-style: decimal;\n}\n\nul,\nol {\n max-width: 100%;\n}\n\nli {\n margin: 0.5em 0;\n padding-left: 0.3em;\n line-height: 1.6em;\n}\n\ndt {\n float: left;\n margin: 0 20px 0 0;\n width: 120px;\n color: var(--darkgrey);\n font-weight: 500;\n text-align: right;\n}\n\ndd {\n margin: 0 0 5px 0;\n text-align: left;\n}\n\nblockquote {\n margin: 1.5em 0;\n padding: 0 1.6em 0 1.6em;\n border-left: var(--whitegrey) 0.5em solid;\n}\n\nblockquote p {\n margin: 0.8em 0;\n font-size: 1.2em;\n font-weight: 300;\n}\n\nblockquote small {\n display: inline-block;\n margin: 0.8em 0 0.8em 1.5em;\n font-size: 0.9em;\n opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n font-weight: bold;\n}\nblockquote cite a {\n font-weight: normal;\n}\n\na {\n color: color-mod(var(--blue) l(-5%));\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n line-height: 1.15;\n font-weight: 600;\n text-rendering: optimizeLegibility;\n}\n\nh1 {\n margin: 0 0 0.5em 0;\n font-size: 5.5rem;\n font-weight: 600;\n}\n@media (max-width: 500px) {\n h1 {\n font-size: 2.2rem;\n }\n}\n\nh2 {\n margin: 1.5em 0 0.5em 0;\n font-size: 2.2rem;\n}\n@media (max-width: 500px) {\n h2 {\n font-size: 1.8rem;\n }\n}\n\nh3 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.8rem;\n font-weight: 500;\n}\n@media (max-width: 500px) {\n h3 {\n font-size: 1.7rem;\n }\n}\n\nh4 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.6rem;\n font-weight: 500;\n}\n\nh5 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n\nh6 {\n margin: 1.5em 0 0.5em 0;\n font-size: 1.4rem;\n font-weight: 500;\n}\n","/* Table of Contents\n/* ------------------------------------------------------------\n\nThis is a development CSS file which is built to a minified\nproduction stylesheet in assets/built/screen.css\n\n1. Global Styles\n2. Layout\n3. Special Templates\n4. Site Header\n 4.1 Home header\n 4.2 Archive header\n5. Site Navigation\n6. Post Feed\n7. Single Post\n 7.1. Post Byline\n 7.2. Members Subscribe Form\n 7.3. Comments\n 7.4. Related Posts\n 7.5. Koenig Styles\n8. Author Template\n9. Error Template\n10. Subscribe Overlay\n11. Site Footer\n12. Dark Mode\n\n*/\n\n\n/* 1. Global - Set up the things\n/* ---------------------------------------------------------- */\n@import \"global.css\";\n\nbody {\n background: #fff;\n}\n\n.img {\n display: block;\n width: 100%;\n height: 100%;\n background-position: center center;\n background-size: cover;\n border-radius: 100%;\n}\n\n.hidden {\n visibility: hidden;\n position: absolute;\n text-indent: -9999px;\n}\n\n\n/* 2. Layout - Page building blocks\n/* ---------------------------------------------------------- */\n\n.site-wrapper {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n\n.site-main {\n z-index: 100;\n flex-grow: 1;\n}\n\n/* Full width page blocks */\n.outer {\n position: relative;\n padding: 0 5vw;\n}\n\n/* Centered content container blocks */\n.inner {\n margin: 0 auto;\n max-width: 1040px;\n width: 100%;\n}\n\n/* Usage:\n\n
\n
\n Centered content\n
\n
\n\n*/\n\n/* 3. Special Template Styles\n/* ---------------------------------------------------------- */\n\n@media (min-width: 900px) {\n .home-template .post-feed,\n .tag-template .post-feed,\n .author-template .post-feed {\n padding: 40px 0 5vw;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n }\n\n .home-template .site-nav {\n position: relative;\n }\n}\n\n\n/* 4. Site Header\n/* ---------------------------------------------------------- */\n\n.site-header-background {\n position: relative;\n margin-top: 64px;\n padding-bottom: 12px;\n color: #fff;\n background: color-mod(var(--darkgrey) l(-5%)) no-repeat center center;\n background-size: cover;\n}\n\n.site-header-background:before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 10;\n display: block;\n background: rgba(0,0,0,0.18);\n}\n\n.site-header-background:after {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: auto;\n left: 0;\n z-index: 10;\n display: block;\n height: 140px;\n background: linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0));\n}\n\n.site-header-background.no-image:before,\n.site-header-background.no-image:after {\n display: none;\n}\n\n.site-header-content {\n z-index: 100;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 6vw 3vw;\n min-height: 200px;\n max-height: 340px;\n}\n\n.site-title {\n z-index: 10;\n margin: 0 0 0 -2px;\n padding: 0;\n font-size: 5.0rem;\n line-height: 1em;\n font-weight: 600;\n}\n\n.site-logo {\n max-height: 55px;\n}\n\n.site-description {\n z-index: 10;\n margin: 0;\n padding: 5px 0;\n font-size: 2.1rem;\n line-height: 1.4em;\n font-weight: 400;\n opacity: 0.8;\n}\n\n/* 4.1 Home header\n/* ---------------------------------------------------------- */\n\n.site-home-header {\n z-index: 1000;\n}\n\n.site-home-header .site-header-background {\n margin-top: 0;\n}\n\n.site-home-header .site-header-content {\n padding: 5vw 3vw 6vw;\n}\n\n.site-home-header .site-title {\n font-size: 5.5rem;\n text-align: center;\n}\n\n.site-home-header .site-description {\n font-size: 2.2rem;\n font-weight: 300;\n text-align: center;\n}\n\n\n/* 4.2 Archive header (tag and author post lists)\n/* ---------------------------------------------------------- */\n\n.site-archive-header .site-header-content {\n position: relative;\n align-items: stretch;\n padding: 12vw 0 20px;\n min-height: 200px;\n max-height: 600px;\n}\n\n.site-archive-header .no-image {\n padding-top: 0;\n padding-bottom: 0;\n color: var(--darkgrey);\n background: #fff;\n opacity: 1.0;\n}\n\n.site-archive-header .no-image .site-description {\n color: var(--midgrey);\n opacity: 1.0;\n}\n\n\n.site-archive-header .no-image .site-header-content {\n padding: 5vw 0 10px;\n border-bottom: 1px solid color-mod(var(--lightgrey) l(+12%));\n}\n\n\n/* Special header styles for smaller screens */\n\n@media (max-width: 900px) {\n .site-header-content {\n padding-bottom: 9vw;\n }\n}\n\n@media (max-width: 500px) {\n .site-home-header .site-title {\n font-size: 4.2rem;\n }\n\n .site-home-header .site-description {\n font-size: 1.8rem;\n }\n\n .site-archive-header .site-header-content {\n flex-direction: column;\n align-items: center;\n min-height: unset;\n }\n\n .site-archive-header .site-title {\n font-size: 4.2rem;\n text-align: center;\n }\n\n .site-archive-header .no-image .site-header-content {\n padding: 12vw 0 20px;\n }\n}\n\n\n/* 5. Site Navigation\n/* ---------------------------------------------------------- */\n\n.site-nav-main {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1000;\n background: color-mod(var(--darkgrey) l(-5%));\n}\n\n.site-nav {\n position: relative;\n z-index: 100;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n overflow: hidden;\n height: 64px;\n font-size: 1.3rem;\n}\n\n.site-nav-left-wrapper {\n position: relative;\n flex: 1 0 auto;\n display: flex;\n}\n\n.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after,\n.site-nav-main .site-nav-left-wrapper:after {\n content: \"\";\n position: absolute;\n top: 0;\n z-index: 1000;\n width: 40px;\n height: 100%;\n}\n\n.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after,\n.site-nav-main .site-nav-left-wrapper:after {\n right: 0;\n background: linear-gradient(to right, color-mod(var(--darkgrey) l(-5%) a(0)) 0%,color-mod(var(--darkgrey) l(-5%)) 100%);\n}\n\n.site-nav-left {\n flex: 1 0 auto;\n display: flex;\n align-items: center;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n margin-right: 10px;\n padding: 10px 0 80px;\n font-weight: 500;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n white-space: nowrap;\n\n -ms-overflow-scrolling: touch;\n}\n\n.site-nav-left .nav li:last-of-type {\n padding-right: 20px;\n}\n\n/* Site Nav Hack Explanation (above):\n\nWhat's happening above is .site-nav-left is set to overflow-x and allow sideways scrolling, so that when there isn't enough space for all nav items (either due to lots of nav items, or a small viewport), you can still scroll side-to-side to reach them. Also, there is a small gradient on the left and right side covering the menu so that the menu goes offscreen smoothly.\n\nThe knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px of padding-bottom and a 40px fixed height parent (.site-nav) hides that entirely. Slightly hacky code. But nice clean end-result.\n\n*/\n\n.site-nav-logo {\n position: relative;\n z-index: 100;\n flex-shrink: 0;\n display: inline-block;\n margin-right: 32px;\n padding: 12px 0;\n color: #fff;\n font-size: 1.7rem;\n line-height: 1.8rem;\n font-weight: bold;\n letter-spacing: -0.5px;\n text-transform: none;\n}\n\n.site-nav-logo:hover {\n text-decoration: none;\n}\n\n.site-nav-logo img {\n display: block;\n width: auto;\n height: 21px;\n}\n\n.site-home-header .site-nav-logo {\n display: none;\n}\n\n.site-nav-content {\n position: relative;\n align-self: flex-start;\n}\n\n.nav {\n position: absolute;\n z-index: 1000;\n display: flex;\n margin: 0 0 0 -12px;\n padding: 0;\n list-style: none;\n transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1);\n}\n\n.nav li {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.nav li a {\n position: relative;\n display: block;\n padding: 12px 12px;\n color: #fff;\n opacity: 0.8;\n transition: opacity 0.35s ease-in-out;\n}\n\n.nav li a:hover {\n text-decoration: none;\n opacity: 1;\n}\n\n.nav li a:before {\n content: \"\";\n position: absolute;\n right: 100%;\n bottom: 8px;\n left: 12px;\n height: 1px;\n background: #fff;\n opacity: 0.25;\n transition: all 0.35s ease-in-out;\n}\n\n.nav li a:hover:before {\n right: 12px;\n opacity: 0.5;\n}\n\n.nav-post-title-active .nav {\n visibility: hidden;\n opacity: 0;\n transform: translateY(-175%);\n}\n\n.nav-post-title {\n visibility: hidden;\n position: absolute;\n top: 9px;\n color: #fff;\n font-size: 1.7rem;\n font-weight: 400;\n text-transform: none;\n opacity: 0;\n transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1);\n transform: translateY(175%);\n}\n\n.nav-post-title.dash {\n left: -25px;\n}\n\n.nav-post-title.dash:before {\n content: \"– \";\n opacity: 0.5;\n}\n\n.nav-post-title-active .nav-post-title {\n visibility: visible;\n opacity: 1;\n transform: translateY(0);\n}\n\n.site-nav-right {\n flex: 0 1 auto;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 10px 0;\n height: 64px;\n}\n\n.site-nav-right .nav {\n position: relative;\n margin: 0;\n}\n\n.site-nav-right .nav a {\n white-space: nowrap;\n}\n\n.site-nav-right .nav a:before {\n display: none;\n}\n\n.site-nav-right .nav li:last-of-type a {\n margin-right: -12px;\n}\n\n.social-links {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.social-link {\n display: inline-block;\n margin: 0;\n padding: 10px;\n opacity: 0.8;\n}\n\n.social-link:hover {\n opacity: 1.0;\n}\n\n.social-link svg {\n height: 1.8rem;\n fill: #fff;\n}\n\n.social-link-fb svg {\n height: 1.6rem;\n}\n\n.social-link-wb svg {\n height: 1.6rem;\n}\n\n.social-link-wb svg path {\n stroke: #fff;\n}\n\n.social-link-rss svg {\n height: 1.9rem;\n}\n\n.subscribe-button {\n display: block;\n margin: 0 0 0 10px;\n padding: 4px 10px;\n border: #fff 1px solid;\n color: #fff;\n line-height: 1em;\n border-radius: 10px;\n opacity: 0.8;\n}\n\n.subscribe-button:hover {\n text-decoration: none;\n opacity: 1;\n}\n\n.site-nav-right .nav + .subscribe-button {\n margin-left: 24px;\n}\n\n.rss-button {\n padding: 10px 8px;\n opacity: 0.8;\n}\n\n.rss-button:hover {\n opacity: 1;\n}\n\n.rss-button svg {\n margin-bottom: 1px;\n height: 2.1rem;\n fill: #fff;\n}\n\n/* Special behaviors for home navigation */\n\n.home-template .site-nav-main {\n z-index: 100;\n}\n\n.home-template .site-nav-main .site-nav {\n opacity: 0;\n transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;\n}\n\n.home-template .site-nav-main .fixed-nav-active {\n opacity: 1;\n transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.05s;\n}\n\n@media (max-width: 700px) {\n .site-home-header .site-nav {\n margin-left: -5vw;\n }\n\n .site-nav-main {\n padding-right: 0;\n padding-left: 0;\n }\n\n .site-nav-left {\n margin-right: 0;\n padding-left: 5vw;\n }\n\n .site-nav-right {\n display: none;\n }\n}\n\n\n/* 6. Post Feed\n/* ---------------------------------------------------------- */\n\n.posts {\n overflow-x: hidden;\n}\n\n.post-feed {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n margin: 0 -20px;\n padding: 50px 0 0;\n background: #fff;\n}\n\n.post-card {\n position: relative;\n flex: 1 1 301px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n margin: 0 0 40px;\n padding: 0 20px 40px;\n min-height: 220px;\n border-bottom: 1px solid color-mod(var(--lightgrey) l(+12%));\n background-size: cover;\n}\n\n.post-card-image-link {\n position: relative;\n display: block;\n overflow: hidden;\n border-radius: 3px;\n}\n\n.post-card-image {\n width: 100%;\n height: 200px;\n background: var(--lightgrey) no-repeat center center;\n\n object-fit: cover;\n}\n\n.post-card-content-link {\n position: relative;\n display: block;\n color: var(--darkgrey);\n}\n\n.post-card-content-link:hover {\n text-decoration: none;\n}\n\n.post-card-header {\n margin: 15px 0 0;\n}\n\n.post-feed .no-image .post-card-content-link {\n padding: 0;\n}\n\n.no-image .post-card-header {\n margin-top: 0;\n}\n\n.post-card-primary-tag {\n margin: 0 0 0.2em;\n color: var(--blue);\n font-size: 1.2rem;\n font-weight: 500;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n}\n\n.post-card-title {\n margin: 0 0 0.4em;\n line-height: 1.15em;\n transition: color 0.2s ease-in-out;\n}\n\n.no-image .post-card-title {\n margin-top: 0;\n}\n\n.post-card-content {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n}\n\n.post-card-excerpt {\n max-width: 56em;\n color: var(--midgrey);\n font-family: Georgia, serif;\n}\n\n.post-card-excerpt p {\n margin-bottom: 1em;\n}\n\n.post-card-meta {\n display: flex;\n align-items: flex-start;\n padding: 0;\n}\n\n.author-profile-image,\n.avatar-wrapper {\n display: block;\n width: 100%;\n height: 100%;\n background: color-mod(var(--lightgrey) l(+10%));\n border-radius: 100%;\n\n object-fit: cover;\n}\n\n.post-card-meta .profile-image-wrapper,\n.post-card-meta .avatar-wrapper {\n position: relative;\n}\n\n.author-list {\n display: flex;\n flex-wrap: wrap;\n margin: 0 0 0 4px;\n padding: 0;\n list-style: none;\n}\n\n.author-list-item {\n position: relative;\n flex-shrink: 0;\n margin: 0;\n padding: 0;\n}\n\n.static-avatar {\n display: block;\n overflow: hidden;\n margin: 0 0 0 -6px;\n width: 34px;\n height: 34px;\n border: #fff 2px solid;\n border-radius: 100%;\n}\n\n.author-name-tooltip {\n position: absolute;\n bottom: 105%;\n z-index: 999;\n display: block;\n padding: 2px 8px;\n color: white;\n font-size: 1.2rem;\n letter-spacing: 0.2px;\n white-space: nowrap;\n background: var(--darkgrey);\n border-radius: 3px;\n box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px;\n opacity: 0;\n transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99);\n transform: translateY(6px);\n pointer-events: none;\n}\n\n.author-list-item:hover .author-name-tooltip {\n opacity: 1.0;\n transform: translateY(0px);\n}\n\n@media (max-width: 700px) {\n .author-name-tooltip {\n display: none;\n }\n}\n\n.post-card-byline-content {\n flex: 1 1 50%;\n display: flex;\n flex-direction: column;\n margin: 2px 0 0 6px;\n color: color-mod(var(--midgrey) l(+10%));\n font-size: 1.2rem;\n line-height: 1.4em;\n font-weight: 400;\n letter-spacing: 0.2px;\n text-transform: uppercase;\n}\n\n.post-card-byline-content span {\n margin: 0;\n}\n\n.post-card-byline-content a {\n color: color-mod(var(--darkgrey) l(+20%));\n font-weight: 600;\n}\n\n.post-card-byline-date {\n font-size: 1.2rem;\n}\n\n.post-card-byline-date .bull {\n display: inline-block;\n margin: 0 4px;\n opacity: 0.6;\n}\n\n.single-author-byline {\n display: flex;\n flex-direction: column;\n margin-left: 5px;\n color: color-mod(var(--midgrey) l(-10%));\n font-size: 1.3rem;\n line-height: 1.4em;\n font-weight: 500;\n}\n\n.single-author {\n display: flex;\n align-items: center;\n}\n\n.single-author .static-avatar {\n margin-left: -2px;\n}\n\n.single-author-name {\n display: inline-block;\n}\n\n/* Special Styling for home page grid (below):\n\nThe first post in the list is styled to be bigger than the others and take over\nthe full width of the grid to give it more emphasis. Wrapped in a media query to\nmake sure this only happens on large viewports / desktop-ish devices.\n\n */\n\n@media (min-width: 795px) {\n .post-card-large {\n flex: 1 1 100%;\n flex-direction: row;\n padding-bottom: 40px;\n min-height: 280px;\n border-top: 0;\n }\n\n .post-card-large:hover {\n border-bottom-color: color-mod(var(--lightgrey) l(+10%));\n }\n\n .post-card-large:not(.no-image) .post-card-header {\n margin-top: 0;\n }\n\n .post-card-large .post-card-image-link {\n position: relative;\n flex: 1 1 auto;\n margin-bottom: 0;\n min-height: 380px;\n }\n\n .post-card-large .post-card-image {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .post-card-large .post-card-content {\n flex: 0 1 361px;\n justify-content: center;\n }\n\n .post-card-large .post-card-title {\n margin-top: 0;\n font-size: 3.2rem;\n }\n\n .post-card-large .post-card-content-link {\n padding: 0 0 0 40px;\n }\n\n .post-card-large .post-card-meta {\n padding: 0 0 0 40px;\n }\n\n .post-card-large .post-card-excerpt p {\n margin-bottom: 1.5em;\n font-size: 1.8rem;\n line-height: 1.5em;\n }\n}\n\n\n/* Adjust some margins for smaller screens */\n@media (max-width: 1170px) {\n .post-card {\n margin-bottom: 5vw;\n }\n}\n\n@media (max-width: 650px) {\n .post-feed {\n padding-top: 5vw;\n }\n\n .post-card {\n margin-bottom: 5vw;\n }\n}\n\n@media (max-width: 500px) {\n .post-card-title {\n font-size: 1.9rem;\n }\n\n .post-card-excerpt {\n font-size: 1.6rem;\n }\n}\n\n\n/* 7. Single Post\n/* ---------------------------------------------------------- */\n\n.post-template .site-main,\n.page-template .site-main {\n margin-top: 64px;\n padding-bottom: 4vw;\n background: #fff;\n}\n\n.post-full-header {\n position: relative;\n margin: 0 auto;\n padding: 70px 170px 50px;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n\n.post-full-tags {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n color: var(--midgrey);\n font-size: 1.3rem;\n line-height: 1.4em;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.post-full-meta-date {\n color: var(--midgrey);\n font-size: 1.2rem;\n font-weight: 400;\n}\n\n@media (max-width: 1170px) {\n .post-full-header {\n padding: 60px 11vw 50px;\n }\n}\n\n@media (max-width: 800px) {\n .post-full-header {\n padding-right: 5vw;\n padding-left: 5vw;\n }\n}\n\n@media (max-width: 500px) {\n .post-full-header {\n padding: 20px 0 35px;\n }\n}\n\n.post-full-title {\n margin: 0 0 0.2em;\n color: color-mod(var(--darkgrey) l(-5%));\n}\n\n.post-full-custom-excerpt {\n margin: 20px 0 0;\n color: var(--midgrey);\n font-family: Georgia, serif;\n font-size: 2.3rem;\n line-height: 1.4em;\n font-weight: 300;\n}\n\n.date-divider {\n display: inline-block;\n margin: 0 6px 1px;\n font-weight: 300;\n}\n\n.post-full-image {\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: hidden;\n margin: 25px 0 50px;\n background: color-mod(var(--lightgrey) l(+10%));\n border-radius: 3px;\n}\n\n.post-full-image img {\n max-width: 1040px;\n width: 100%;\n height: auto;\n}\n\n.post-full-content {\n position: relative;\n margin: 0 auto;\n padding: 0 170px 6vw;\n min-height: 230px;\n font-family: Georgia, serif;\n font-size: 2.0rem;\n line-height: 1.6em;\n background: #fff;\n}\n\n@media (max-width: 1170px) {\n .post-full-content {\n padding: 0 11vw;\n }\n}\n@media (max-width: 800px) {\n .post-full-content {\n padding: 0 5vw;\n font-size: 1.8rem;\n }\n}\n@media (max-width: 500px) {\n .post-full-custom-excerpt {\n font-size: 1.9rem;\n line-height: 1.5em;\n }\n}\n\n.no-image .post-full-content {\n padding-top: 0;\n}\n\n.no-image .post-full-content:before,\n.no-image .post-full-content:after {\n display: none;\n}\n\n.post-full-content h1,\n.post-full-content h2,\n.post-full-content h3,\n.post-full-content h4,\n.post-full-content h5,\n.post-full-content h6,\n.post-full-content p,\n.post-full-content ul,\n.post-full-content ol,\n.post-full-content dl,\n.post-full-content pre,\n.post-full-content blockquote,\n.post-full-comments,\n.footnotes {\n margin: 0 0 1.5em 0;\n min-width: 100%;\n}\n@media (max-width: 500px) {\n .post-full-content p,\n .post-full-content ul,\n .post-full-content ol,\n .post-full-content dl,\n .post-full-content pre,\n .post-full-comments,\n .footnotes {\n margin-bottom: 1.28em;\n }\n}\n\n.post-full-content li {\n word-break: break-word;\n}\n\n.post-full-content li p {\n margin: 0;\n}\n\n.post-full-content a {\n color: var(--darkgrey);\n word-break: break-word;\n box-shadow: var(--darkgrey) 0 -1px 0 inset;\n transition: all 0.2s ease-in-out;\n}\n\n.post-full-content a:hover {\n color: var(--blue);\n text-decoration: none;\n box-shadow: var(--blue) 0 -1px 0 inset;\n}\n\n.post-full-content strong,\n.post-full-content em {\n color: color-mod(var(--darkgrey) l(-5%));\n}\n\n.post-full-content small {\n display: inline-block;\n line-height: 1.6em;\n}\n\n.post-full-content li:first-child {\n margin-top: 0;\n}\n\n.post-full-content img,\n.post-full-content video {\n display: block;\n margin: 1.5em auto;\n max-width: 1040px;\n height: auto;\n}\n@media (max-width: 1040px) {\n .post-full-content img,\n .post-full-content video {\n width: 100%;\n }\n}\n\n\n/* Full bleed images (#full)\nSuper neat trick courtesy of @JoelDrapper\n\nUsage (In Ghost edtior):\n\n![img](/some/image.jpg#full)\n\n*/\n.post-full-content img[src$=\"#full\"] {\n max-width: none;\n width: 100vw;\n}\n\n\n/* Image captions\n\nUsage (In Ghost editor):\n\n![img](/some/image.jpg)\nYour image caption\n\n*/\n.post-full-content img + br + small {\n display: block;\n margin-top: -3em;\n margin-bottom: 1.5em;\n text-align: center;\n}\n\n\n/* Override third party iframe styles */\n.post-full-content iframe {\n margin: 0 auto !important;\n}\n\n.post-full-content blockquote {\n margin: 0 0 1.5em;\n padding: 0 1.5em;\n border-left: color-mod(var(--blue)) 3px solid;\n}\n@media (max-width: 500px) {\n .post-full-content blockquote {\n padding: 0 1.3em;\n }\n}\n\n.post-full-content blockquote p {\n margin: 0 0 1em 0;\n color: inherit;\n font-size: inherit;\n line-height: inherit;\n font-style: italic;\n}\n\n.post-full-content blockquote p:last-child {\n margin-bottom: 0;\n}\n\n.post-full-content code {\n padding: 0 5px 2px;\n font-size: 0.8em;\n line-height: 1em;\n font-weight: 400!important;\n background: var(--whitegrey);\n border-radius: 3px;\n}\n\n.post-full-content p code {\n word-break: break-all;\n}\n\n.post-full-content pre {\n overflow-x: auto;\n margin: 1.5em 0 3em;\n padding: 20px;\n max-width: 100%;\n border: color-mod(var(--darkgrey) l(-10%)) 1px solid;\n color: var(--whitegrey);\n font-size: 1.4rem;\n line-height: 1.5em;\n background: color-mod(var(--darkgrey) l(-3%));\n border-radius: 5px;\n}\n\n.post-full-content pre ::selection {\n color: color-mod(var(--midgrey) l(-25%));\n}\n\n.post-full-content pre code {\n padding: 0;\n font-size: inherit;\n line-height: inherit;\n background: transparent;\n}\n\n.post-full-content pre code :not(span) {\n color: inherit;\n}\n\n.post-full-content .fluid-width-video-wrapper {\n margin: 1.5em 0 3em;\n}\n\n.post-full-content hr {\n margin: 2em 0;\n}\n\n.post-full-content hr:after {\n content: \"\";\n position: absolute;\n top: -15px;\n left: 50%;\n display: block;\n margin-left: -10px;\n width: 1px;\n height: 30px;\n background: color-mod(var(--lightgrey) l(+10%));\n box-shadow: #fff 0 0 0 5px;\n transform: rotate(45deg);\n}\n\n.post-full-content hr + p {\n margin-top: 1.2em;\n}\n\n.post-full-content h1,\n.post-full-content h2,\n.post-full-content h3,\n.post-full-content h4,\n.post-full-content h5,\n.post-full-content h6 {\n color: color-mod(var(--darkgrey) l(-5%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n}\n\n.post-full-content h1 {\n margin: 0.5em 0 0.4em;\n font-size: 4.2rem;\n line-height: 1.25em;\n font-weight: 600;\n}\n.post-full-content p + h1 {\n margin-top: 0.8em;\n}\n@media (max-width: 800px) {\n .post-full-content h1 {\n font-size: 3.2rem;\n line-height: 1.25em;\n }\n}\n\n.post-full-content h2 {\n margin: 0.5em 0 0.4em;\n font-size: 3.2rem;\n line-height: 1.25em;\n font-weight: 600;\n}\n.post-full-content p + h2 {\n margin-top: 0.8em;\n}\n@media (max-width: 800px) {\n .post-full-content h2 {\n margin-bottom: 0.3em;\n font-size: 2.8rem;\n line-height: 1.25em;\n }\n}\n\n.post-full-content h3 {\n margin: 0.5em 0 0.2em;\n font-size: 2.5rem;\n line-height: 1.3em;\n font-weight: 600;\n}\n.post-full-content h2 + h3 {\n margin-top: 0.7em;\n}\n@media (max-width: 800px) {\n .post-full-content h3 {\n margin-bottom: 0.3em;\n font-size: 2.4rem;\n line-height: 1.3em;\n }\n}\n\n.post-full-content h4 {\n margin: 0.5em 0 0.2em;\n font-size: 2.5rem;\n font-weight: 600;\n}\n.post-full-content h2 + h4 {\n margin-top: 0.7em;\n}\n.post-full-content h3 + h4 {\n margin-top: 0;\n}\n@media (max-width: 800px) {\n .post-full-content h4 {\n margin-bottom: 0.3em;\n font-size: 2.4rem;\n line-height: 1.3em;\n }\n}\n\n.post-full-content h5 {\n display: block;\n margin: 0.5em 0;\n padding: 0.4em 1em 0.9em;\n border: 0;\n color: var(--blue);\n font-family: Georgia,serif;\n font-size: 3.2rem;\n line-height: 1.35em;\n text-align: center;\n}\n@media (min-width: 1180px) {\n .post-full-content h5 {\n max-width: 1060px;\n width: 100vw;\n }\n}\n@media (max-width: 800px) {\n .post-full-content h5 {\n margin-bottom: 1em;\n margin-left: 1.3em;\n padding: 0 0 0.5em;\n font-size: 2.4rem;\n text-align: initial;\n }\n}\n\n.post-full-content h6 {\n margin: 0.5em 0 0.2em 0;\n font-size: 2.0rem;\n font-weight: 700;\n}\n@media (max-width: 800px) {\n .post-full-content h6 {\n font-size: 1.8rem;\n line-height: 1.4em;\n }\n}\n\n.footnotes-sep {\n margin-bottom: 30px;\n}\n\n.footnotes {\n font-size: 1.5rem;\n}\n\n.footnotes p {\n margin: 0;\n}\n\n.footnote-backref {\n color: var(--blue) !important;\n font-size: 1.2rem;\n font-weight: bold;\n text-decoration: none !important;\n box-shadow: none !important;\n}\n\n/* Some grouped styles for smaller viewports */\n@media (max-width: 1170px) {\n .post-full-image {\n margin: 25px -6vw 50px;\n border-radius: 0;\n }\n\n .post-full-image img {\n max-width: 1170px;\n }\n}\n\n@media (max-width: 700px) {\n .post-full-image {\n margin: 25px -5vw;\n }\n}\n\n@media (max-width: 500px) {\n .post-full-meta {\n font-size: 1.2rem;\n line-height: 1.3em;\n }\n\n .post-full-title {\n margin-top: 0.2em;\n font-size: 4.2rem;\n line-height: 1.05em;\n }\n\n .post-full-image {\n margin-top: 5px;\n margin-bottom: 5vw;\n }\n\n .post-full-content {\n padding: 0;\n }\n\n .post-full-content:before,\n .post-full-content:after {\n display: none;\n }\n}\n\n/* Tables */\n.post-full-content table {\n display: inline-block;\n overflow-x: auto;\n margin: 0.5em 0 2.5em;\n max-width: 100%;\n width: auto;\n border-spacing: 0;\n border-collapse: collapse;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 1.6rem;\n white-space: nowrap;\n vertical-align: top;\n}\n\n.post-full-content table {\n -webkit-overflow-scrolling: touch;\n background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;\n background-attachment: scroll, scroll;\n background-size: 10px 100%, 10px 100%;\n background-repeat: no-repeat;\n}\n\n.post-full-content table td:first-child {\n background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n background-size: 20px 100%;\n background-repeat: no-repeat;\n}\n\n.post-full-content table td:last-child {\n background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n background-position: 100% 0;\n background-size: 20px 100%;\n background-repeat: no-repeat;\n}\n\n.post-full-content table th {\n color: var(--darkgrey);\n font-size: 1.2rem;\n font-weight: 700;\n letter-spacing: 0.2px;\n text-align: left;\n text-transform: uppercase;\n background-color: color-mod(var(--whitegrey) l(+4%));\n}\n\n.post-full-content table th,\n.post-full-content table td {\n padding: 6px 12px;\n border: color-mod(var(--whitegrey) l(-1%) s(-5%)) 1px solid;\n}\n\n\n/* 7.1. Post Byline\n/* ---------------------------------------------------------- */\n\n.post-full-byline {\n display: flex;\n justify-content: space-between;\n margin: 35px 0 0;\n padding-top: 15px;\n border-top: 1px solid color-mod(var(--lightgrey) l(+10%));\n}\n\n.post-full-byline-content {\n flex-grow: 1;\n display: flex;\n align-items: flex-start;\n}\n\n.post-full-byline-content .author-list {\n justify-content: flex-start;\n padding: 0 12px 0 0;\n}\n\n.post-full-byline-meta {\n margin: 2px 0 0;\n color: color-mod(var(--midgrey) l(+10%));\n font-size: 1.2rem;\n line-height: 1.2em;\n letter-spacing: 0.2px;\n text-transform: uppercase;;\n}\n\n.post-full-byline-meta h4 {\n margin: 0 0 3px;\n font-size: 1.3rem;\n line-height: 1.4em;\n font-weight: 500;\n}\n\n.post-full-byline-meta h4 a {\n color: color-mod(var(--darkgrey) l(+10%));\n}\n\n.post-full-byline-meta h4 a:hover {\n color: var(--darkgrey);\n}\n\n.post-full-byline-meta .bull {\n display: inline-block;\n margin: 0 4px;\n opacity: 0.6;\n}\n\n.author-avatar {\n display: block;\n overflow: hidden;\n margin: 0 -4px;\n width: 40px;\n height: 40px;\n border: #fff 2px solid;\n border-radius: 100%;\n transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 700ms;\n}\n\n.author-list-item .author-card {\n position: absolute;\n bottom: 130%;\n left: 50%;\n z-index: 600;\n display: flex;\n justify-content: space-between;\n margin-left: -200px;\n width: 400px;\n font-size: 1.4rem;\n line-height: 1.5em;\n background: white;\n border-radius: 3px;\n box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.06) 1px 3px 8px;\n opacity: 0;\n transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99);\n transform: scale(0.98) translateY(15px);\n pointer-events: none;\n}\n\n.author-list-item .author-card:before {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 50%;\n display: block;\n margin-left: -8px;\n width: 0;\n height: 0;\n border-top: 8px solid #fff;\n border-right: 8px solid transparent;\n border-left: 8px solid transparent;\n}\n\n.author-list-item .author-card.hovered {\n opacity: 1.0;\n transform: scale(1) translateY(0px);\n pointer-events: auto;\n}\n\n.author-card {\n padding: 20px 20px 22px;\n}\n\n.author-card .author-info {\n flex: 1 1 auto;\n padding: 0 0 0 20px;\n}\n\n.author-card .author-info h2 {\n margin: 8px 0 0;\n font-size: 1.6rem;\n}\n\n.author-card .author-info p {\n margin: 4px 0 0;\n color: color-mod(var(--midgrey) l(-10%));\n}\n\n.author-card .author-info .bio h2 {\n margin-top: 0;\n}\n\n.author-card .author-info .bio p {\n margin-top: 0.8em;\n}\n\n.author-card .author-profile-image {\n flex: 0 0 60px;\n margin: 0;\n width: 60px;\n height: 60px;\n border: none;\n}\n\n.basic-info .avatar-wrapper {\n position: relative;\n margin: 0;\n width: 60px;\n height: 60px;\n border: none;\n background: rgba(229, 239, 245, 0.1);\n}\n\n.basic-info .avatar-wrapper svg {\n margin: 0;\n width: 60px;\n height: 60px;\n opacity: 0.15;\n}\n\n@media (max-width: 1170px) {\n .author-list-item .author-card {\n margin-left: -50px;\n width: 430px;\n }\n\n .author-list-item .author-card:before {\n left: 50px;\n }\n}\n\n@media (max-width: 650px) {\n .author-list-item .author-card {\n display: none;\n }\n}\n\n@media (max-width: 500px) {\n .author-avatar {\n width: 36px;\n height: 36px;\n }\n\n .post-full-byline {\n margin-top: 20px;\n }\n\n .post-full-byline-meta {\n font-size: 1.2rem;\n }\n\n .post-full-byline-meta h4 {\n margin-bottom: 2px;\n font-size: 1.2rem;\n }\n}\n\n\n/* 7.2. Members Subscribe Form\n/* ---------------------------------------------------------- */\n.subscribe-form {\n margin: 1.5em 0;\n padding: 6.5vw 7vw 8vw;\n border: color-mod(var(--lightgrey) l(+10%)) 1px solid;\n text-align: center;\n background: linear-gradient(color-mod(var(--whitegrey) l(+6%)), color-mod(var(--whitegrey) l(+4%)));\n border-radius: 3px;\n}\n\n.subscribe-form-title {\n margin: 0 0 3px 0;\n padding: 0;\n color: var(--darkgrey);\n font-size: 3.5rem;\n line-height: 1;\n font-weight: 600;\n}\n\n.subscribe-form-description {\n margin-bottom: 0.2em 0 1em;\n color: var(--midgrey);\n font-size: 2.1rem;\n line-height: 1.55em;\n}\n\n.subscribe-form form {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 0 auto;\n max-width: 460px;\n}\n\n.subscribe-form .form-group {\n align-self: stretch;\n display: flex;\n}\n\n.subscribe-email {\n display: block;\n padding: 10px;\n width: 100%;\n border: color-mod(var(--lightgrey) l(+7%)) 1px solid;\n color: var(--midgrey);\n font-size: 1.8rem;\n line-height: 1em;\n font-weight: normal;\n user-select: text;\n border-radius: 5px;\n transition: border-color 0.15s linear;\n\n -webkit-appearance: none;\n}\n\n.subscribe-email:focus {\n outline: 0;\n border-color: color-mod(var(--lightgrey) l(-2%));\n}\n\n.subscribe-form button {\n position: relative;\n display: inline-block;\n margin: 0 0 0 10px;\n padding: 0 20px;\n height: 43px;\n outline: none;\n color: #fff;\n font-size: 1.5rem;\n line-height: 39px;\n font-weight: 400;\n text-align: center;\n background: linear-gradient(\n color-mod(var(--blue) whiteness(+7%)),\n color-mod(var(--blue) lightness(-7%) saturation(-10%)) 60%,\n color-mod(var(--blue) lightness(-7%) saturation(-10%)) 90%,\n color-mod(var(--blue) lightness(-4%) saturation(-10%))\n );\n border-radius: 5px;\n\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.subscribe-form button:active,\n.subscribe-form button:focus {\n background: color-mod(var(--blue) lightness(-9%) saturation(-10%));\n}\n\n.subscribe-form .button-loader,\n.subscribe-form .message-success,\n.subscribe-form .message-error {\n display: none;\n}\n\n.subscribe-form .loading .button-content {\n visibility: hidden;\n}\n\n.subscribe-form .loading .button-loader {\n position: absolute;\n top: 0;\n left: 50%;\n display: inline-block;\n margin-left: -19px;\n transform: scale(0.7);\n}\n\n.subscribe-form .button-loader svg path,\n.subscribe-form .button-loader svg rect {\n fill: #fff;\n}\n\n.subscribe-form .success .message-success,\n.subscribe-form .invalid .message-error,\n.subscribe-form .error .message-error {\n margin: 1em auto 0;\n max-width: 400px;\n color: var(--red);\n font-size: 1.6rem;\n line-height: 1.5em;\n text-align: center;\n}\n\n.subscribe-form .success .message-success {\n display: block;\n color: color-mod(var(--green) l(-5%));\n}\n\n.subscribe-form .invalid .message-error,\n.subscribe-form .error .message-error {\n display: block;\n}\n\n\n@media (max-width: 650px) {\n .subscribe-form-title {\n font-size: 2.4rem;\n }\n\n .subscribe-form-description {\n font-size: 1.6rem;\n }\n}\n\n@media (max-width: 500px) {\n .subscribe-form form {\n flex-direction: column;\n }\n\n .subscribe-form .form-group {\n flex-direction: column;\n width: 100%;\n }\n\n .subscribe-form button {\n margin: 10px 0 0 0;\n width: 100%;\n }\n}\n\n\n/* 7.3. Comments\n/* ---------------------------------------------------------- */\n\n.post-full-comments {\n margin: 0 auto;\n max-width: 840px;\n}\n\n\n/* 7.4. Related posts\n/* ---------------------------------------------------------- */\n\n.read-next {\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n background: color-mod(var(--darkgrey) l(-5%));\n}\n\n.read-next-feed {\n display: flex;\n flex-wrap: wrap;\n margin: 0 -25px;\n padding: 60px 0 0 0;\n}\n\n.read-next .post-card {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n.read-next .post-card:after {\n display: none;\n}\n\n.read-next .post-card-primary-tag {\n color: #fff;\n opacity: 0.6;\n}\n\n.read-next .post-card-title {\n color: #fff;\n opacity: 0.8;\n transition: all 0.2s ease-in-out;\n}\n\n.read-next .post-card:hover .post-card-image {\n opacity: 1.0;\n}\n\n.read-next .post-card-excerpt {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next .static-avatar {\n border-color: #000;\n}\n\n.read-next .post-card-byline-content {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next .post-card-byline-content a {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.read-next-card {\n position: relative;\n flex: 0 1 326px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n margin: 0 25px 50px;\n padding: 25px;\n background: linear-gradient(color-mod(var(--darkgrey) l(+2%)), color-mod(var(--darkgrey) l(-5%)));\n border-radius: 3px;\n}\n\n.read-next-card a {\n transition: all 0.2s ease-in-out;\n}\n\n.read-next-card a:hover {\n text-decoration: none;\n}\n\n.read-next-card-header h3 {\n margin: 0;\n color: rgba(255, 255, 255, 0.6);\n font-size: 1.2rem;\n line-height: 1em;\n font-weight: 300;\n letter-spacing: 0.4px;\n text-transform: uppercase;\n}\n\n.read-next-card-header h3 a {\n color: #fff;\n font-weight: 500;\n text-decoration: none;\n opacity: 0.8;\n}\n\n.read-next-card-header h3 a:hover {\n opacity: 1;\n}\n\n.read-next-card-content {\n font-size: 1.7rem;\n}\n\n.read-next-card-content ul {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.read-next-card-content li {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 0;\n padding: 20px 0;\n border-bottom: rgba(255, 255, 255, 0.1);\n}\n\n.read-next-card-content li:last-of-type {\n padding-bottom: 5px;\n border: none;\n}\n\n.read-next-card-content h4 {\n margin: 0;\n font-size: 1.6rem;\n line-height: 1.35em;\n font-weight: 600;\n}\n\n.read-next-card-content li a {\n display: block;\n color: #fff;\n opacity: 0.8;\n}\n\n.read-next-card-content li a:hover {\n opacity: 1;\n}\n\n.read-next-card-excerpt {\n overflow: hidden;\n max-width: 100%;\n font-size: 1.4rem;\n line-height: 1.2em;\n text-overflow: ellipsis;\n}\n\n.read-next-card-meta {\n margin-top: 2px;\n font-size: 1.2rem;\n line-height: 1.4em;\n font-weight: 400;\n}\n\n.read-next-card-meta p {\n margin: 0;\n color: rgba(255, 255, 255, 0.6);\n}\n\n.read-next-card-footer {\n position: relative;\n margin: 40px 0 5px;\n}\n\n.read-next-card-footer a {\n padding: 7px 12px 8px 14px;\n border: 1px solid rgba(255, 255, 255, 0.6);\n color: rgba(255, 255, 255, 0.6);\n font-size: 1.3rem;\n border-radius: 999px;\n transition: all 0.35s ease-in-out;\n}\n\n.read-next-card-footer a:hover {\n border-color: var(--yellow);\n color: var(--yellow);\n text-decoration: none;\n}\n\n@media (max-width: 1170px) {\n .read-next-card {\n flex: 1 1 261px;\n margin-bottom: 5vw;\n }\n}\n\n@media (max-width: 650px) {\n .read-next-feed {\n flex-direction: column;\n padding: 25px 0 0;\n }\n\n .read-next-card {\n flex: 1 1 auto;\n margin: 0 25px;\n padding: 0;\n background: none;\n }\n\n .read-next .post-card {\n flex: 1 1 auto;\n margin: 25px;\n padding: 25px 0 0;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n }\n}\n\n\n/* 7.5. Koenig Styles\n/* ---------------------------------------------------------- */\n\n.post-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.post-full-content .kg-image {\n margin: 0 auto;\n max-width: 100%;\n}\n\n/* Preventing full-width image overlap with post image. */\n.post-full-image + .post-full-content .kg-content *:first-child .kg-image {\n width: 100%;\n}\n\n.post-full-content .kg-width-wide .kg-image {\n max-width: 1040px;\n}\n\n.post-full-content .kg-width-full .kg-image {\n max-width: 100vw;\n}\n\n.post-full-content figure {\n margin: 0.8em 0 2.3em;\n}\n\n.post-full-content h1 + figure,\n.post-full-content h2 + figure,\n.post-full-content h3 + figure,\n.post-full-content h4 + figure {\n margin-top: 2em;\n}\n\n.post-full-content figure img {\n margin: 0;\n}\n\n.post-full-content figcaption {\n margin: 1.0em auto 0;\n color: color-mod(var(--midgrey) l(-10%));\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n font-size: 75%;\n line-height: 1.5em;\n text-align: center;\n max-width: 1040px;\n}\n\n.kg-width-full figcaption {\n padding: 0 1.5em;\n}\n\n.kg-embed-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n.kg-embed-card .fluid-width-video-wrapper {\n margin: 0;\n}\n\n\n@media (max-width: 1040px) {\n .post-full-content .kg-width-full .kg-image {\n width: 100vw;\n }\n}\n\n.kg-gallery-container {\n display: flex;\n flex-direction: column;\n max-width: 1040px;\n width: 100vw;\n}\n\n.kg-gallery-row {\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n\n.kg-gallery-image img {\n display: block;\n margin: 0;\n width: 100%;\n height: 100%;\n}\n\n.kg-gallery-row:not(:first-of-type) {\n margin: 0.75em 0 0 0;\n}\n\n.kg-gallery-image:not(:first-of-type) {\n margin: 0 0 0 0.75em;\n}\n\n.kg-gallery-card + .kg-image-card.kg-width-wide,\n.kg-gallery-card + .kg-gallery-card,\n.kg-image-card.kg-width-wide + .kg-gallery-card,\n.kg-image-card.kg-width-wide + .kg-image-card.kg-width-wide {\n margin: -2.25em 0 3em;\n}\n\n/* keep existing
 styles for code cards with captions */\n.kg-code-card {\n    width: 100%;\n}\n\n.kg-code-card pre {\n    margin: 0;\n}\n\n.kg-bookmark-card {\n    width: 100%;\n}\n\n.kg-card + .kg-bookmark-card {\n    margin-top: 0;\n}\n\n.post-full-content .kg-bookmark-container {\n    display: flex;\n    min-height: 148px;\n    color: var(--darkgrey);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    text-decoration: none;\n    border-radius: 3px;\n    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);\n}\n\n.post-full-content .kg-bookmark-container:hover {\n    color: var(--darkgrey);\n    text-decoration: none;\n    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);\n}\n\n.kg-bookmark-content {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    align-items: flex-start;\n    padding: 20px;\n}\n\n.kg-bookmark-title {\n    color: color-mod(var(--midgrey) l(-30%));\n    font-size: 1.6rem;\n    line-height: 1.5em;\n    font-weight: 600;\n    transition: color 0.2s ease-in-out;\n}\n\n.post-full-content .kg-bookmark-container:hover .kg-bookmark-title {\n    color: var(--blue);\n}\n\n.kg-bookmark-description {\n    display: -webkit-box;\n    overflow-y: hidden;\n    margin-top: 12px;\n    max-height: 48px;\n    color: color-mod(var(--midgrey) l(-10%));\n    font-size: 1.5rem;\n    line-height: 1.5em;\n    font-weight: 400;\n\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n}\n\n.kg-bookmark-thumbnail {\n    position: relative;\n    min-width: 33%;\n    max-height: 100%;\n}\n\n.kg-bookmark-thumbnail img {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border-radius: 0 3px 3px 0;\n\n    object-fit: cover;\n}\n\n.kg-bookmark-metadata {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    margin-top: 14px;\n    color: var(--darkgrey);\n    font-size: 1.5rem;\n    font-weight: 500;\n}\n\n.post-full-content .kg-bookmark-icon {\n    margin-right: 8px;\n    width: 22px;\n    height: 22px;\n}\n\n.kg-bookmark-author {\n    line-height: 1.5em;\n}\n\n.kg-bookmark-author:after {\n    content: \"•\";\n    margin: 0 6px;\n}\n\n.kg-bookmark-publisher {\n    overflow: hidden;\n    max-width: 240px;\n    line-height: 1.5em;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    color: color-mod(var(--midgrey) l(-10%));\n    font-weight: 400;\n}\n\n@media (max-width: 800px) {\n    .post-full-content figure {\n        margin: 0.2em 0 1.3em;\n    }\n\n    .post-full-content h1 + figure,\n    .post-full-content h2 + figure,\n    .post-full-content h3 + figure,\n    .post-full-content h4 + figure {\n        margin-top: 0.9em;\n    }\n}\n\n@media (max-width: 500px) {\n    .post-full-content .kg-width-wide,\n    .post-full-content .kg-width-full {\n        margin-right: -5vw;\n        margin-left: -5vw;\n    }\n\n    .post-full-content figcaption {\n        margin-bottom: 0.4em;\n    }\n\n    .post-full-content .kg-bookmark-container {\n        flex-direction: column;\n    }\n\n    .kg-bookmark-title,\n    .kg-bookmark-description,\n    .kg-bookmark-metadata {\n        font-size: 1.4rem;\n        line-height: 1.5em;\n    }\n\n    .post-full-content .kg-bookmark-icon {\n        width: 18px;\n        height: 18px;\n    }\n\n    .kg-bookmark-thumbnail {\n        order: 1;\n        min-height: 160px;\n        width: 100%;\n    }\n\n    .kg-bookmark-thumbnail img {\n        border-radius: 3px 3px 0 0;\n    }\n\n    .kg-bookmark-content {\n        order: 2;\n    }\n}\n\n/* 8. Author Template\n/* ---------------------------------------------------------- */\n.author-header {\n    display: flex;\n    flex-direction: row;\n    justify-content: flex-start;\n    align-items: flex-start;\n    padding: 10vw 0 10px;\n}\n\n.site-archive-header .author-header {\n    align-items: center;\n}\n\n.site-archive-header .no-image .author-header {\n    padding-bottom: 20px;\n}\n\n.author-header-content {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    margin: 5px 0 0 30px;\n}\n\n.site-header-content .author-profile-image {\n    z-index: 10;\n    flex-shrink: 0;\n    margin: -4px 0 0;\n    width: 110px;\n    height: 110px;\n    box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;\n}\n\n.author-header-content .author-bio {\n    z-index: 10;\n    flex-shrink: 0;\n    margin: 6px 0 0;\n    max-width: 46em;\n    font-size: 2.0rem;\n    line-height: 1.3em;\n    font-weight: 400;\n    opacity: 0.8;\n}\n\n.author-header-content .author-meta {\n    z-index: 10;\n    flex-shrink: 0;\n    display: flex;\n    align-items: center;\n    margin: 0 0 0 1px;\n    font-size: 1.2rem;\n    font-weight: 400;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n    white-space: nowrap;\n}\n\n.author-header-content .social-link:first-of-type {\n    padding-left: 4px;\n}\n\n.no-image .author-header-content .author-bio {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n.no-image .author-header-content .author-meta {\n    color: var(--midgrey);\n    opacity: 1.0;\n}\n\n.author-social-link a {\n    color: #fff;\n    font-weight: 600;\n}\n\n.no-image .author-social-link a {\n    color: var(--darkgrey);\n}\n\n.author-social-link a:hover {\n    opacity: 1;\n}\n\n.author-social-link {\n    display: inline-block;\n    margin: 0;\n    padding: 6px 0;\n}\n\n.author-location + .author-stats:before,\n.author-stats + .author-social-link:before,\n.author-social-link + .author-social-link:before {\n    content: \"\\2022\";\n    display: inline-block;\n    margin: 0 12px;\n    color: #fff;\n    opacity: 0.6;\n}\n\n.no-image .author-location + .author-stats:before,\n.no-image .author-stats + .author-social-link:before,\n.no-image .author-social-link + .author-social-link:before {\n    color: var(--midgrey);\n}\n\n@media (max-width: 700px) {\n    .author-location,\n    .author-stats,\n    .author-stats + .author-social-link:first-of-type:before {\n        display: none;\n    }\n}\n\n@media (max-width: 500px) {\n    .author-header {\n        padding: 10px 0 0;\n    }\n\n    .no-image .author-header {\n        padding-bottom: 10px;\n    }\n\n    .author-header-content {\n        align-items: center;\n        margin: 16px 0 0 0;\n    }\n\n    .site-header-content .author-profile-image {\n        width: 96px;\n        height: 96px;\n    }\n\n    .author-header-content .author-bio {\n        font-size: 1.8rem;\n        line-height: 1.3em;\n        letter-spacing: 0;\n        text-align: center;\n    }\n\n    .author-header-content .author-meta {\n        margin-top: 8px;\n    }\n\n    .author-location + .author-stats:before,\n    .author-stats + .author-social-link:before,\n    .author-social-link + .author-social-link:before {\n        display: inline;\n        margin: 0 6px;\n    }\n}\n\n\n/* 9. Error Template\n/* ---------------------------------------------------------- */\n\n.error-content {\n    padding: 14vw 4vw 6vw;\n}\n\n.site-nav-center {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    padding: 10px 0;\n    text-align: center;\n}\n\n.site-nav-center .site-nav-logo {\n    margin-right: 0;\n}\n\n.error-message {\n    padding-bottom: 10vw;\n    border-bottom: 1px solid color-mod(var(--lightgrey) l(+10%));\n    text-align: center;\n}\n\n.error-code {\n    margin: 0;\n    color: var(--lightgrey);\n    font-size: 12vw;\n    line-height: 1em;\n    letter-spacing: -5px;\n    opacity: 0.75;\n}\n\n.error-description {\n    margin: 0;\n    color: var(--midgrey);\n    font-size: 3rem;\n    line-height: 1.3em;\n    font-weight: 400;\n}\n\n.error-link {\n    display: inline-block;\n    margin-top: 5px;\n}\n\n@media (min-width: 940px) {\n    .error-content .post-card {\n        margin-bottom: 0;\n        padding-bottom: 0;\n        border-bottom: none;\n    }\n}\n\n@media (max-width: 800px) {\n    .error-content {\n        padding-top: 24vw;\n    }\n    .error-code {\n        font-size: 11.2rem;\n    }\n    .error-message {\n        padding-bottom: 16vw;\n    }\n    .error-description {\n        margin: 5px 0 0 0;\n        font-size: 1.8rem;\n    }\n}\n\n@media (max-width: 500px) {\n    .error-content {\n        padding-top: 28vw;\n    }\n    .error-message {\n        padding-bottom: 14vw;\n    }\n}\n\n\n/* 10. Subscribe Message and Overlay\n/* ---------------------------------------------------------- */\n\n.subscribe-notification {\n    position: fixed;\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 9000;\n    padding: 20px 0;\n    color: #fff;\n    text-align: center;\n    background: var(--green);\n    transition: all 0.35s cubic-bezier(0.19, 1, 0.22, 1) 0.5s;\n    transform: translateY(-175%);\n}\n\n.subscribe-notification.subscribe-failure-message {\n    background: var(--red);\n}\n\n.subscribe-success .subscribe-success-message {\n    visibility: visible;\n    transform: translateY(0);\n}\n\n.subscribe-failure .subscribe-failure-message {\n    visibility: visible;\n    transform: translateY(0);\n}\n\n.subscribe-notification.close {\n    visibility: hidden;\n    transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);\n    transform: translateY(-175%);\n}\n\n.subscribe-notification .subscribe-close-button {\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n}\n\n.subscribe-notification .subscribe-close-button:before,\n.subscribe-notification .subscribe-close-button:after {\n    top: 31px;\n    right: 20px;\n    width: 18px;\n    height: 2px;\n}\n\n.subscribe-close-overlay {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    display: block;\n}\n\n.subscribe-close-button {\n    position: absolute;\n    top: 16px;\n    right: 20px;\n    z-index: 2000;\n    display: block;\n    width: 40px;\n    height: 40px;\n}\n\n.subscribe-close-button:before {\n    content: \"\";\n    position: absolute;\n    top: 20px;\n    right: 4px;\n    display: block;\n    width: 32px;\n    height: 1px;\n    background: #fff;\n    opacity: 0.8;\n    transform: rotate(45deg);\n}\n\n.subscribe-close-button:after {\n    content: \"\";\n    position: absolute;\n    top: 20px;\n    right: 4px;\n    display: block;\n    width: 32px;\n    height: 1px;\n    background: #fff;\n    opacity: 0.8;\n    transform: rotate(-45deg);\n}\n\n.subscribe-close-overlay:hover,\n.subscribe-close-button:hover {\n    cursor: default;\n}\n\n.subscribe-overlay {\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 2000;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    background: rgba(9,10,11,0.97);\n    opacity: 0;\n    transition: opacity 0.2s ease-in;\n    pointer-events: none;\n}\n\n.subscribe-overlay:target {\n    z-index: 2001;\n    opacity: 1;\n    pointer-events: auto;\n}\n\n.subscribe-overlay-content {\n    position: relative;\n    margin: 0 0 5vw 0;\n    padding: 4vw;\n    color: #fff;\n    text-align: center;\n}\n\n.subscribe-overlay .subscribe-form {\n    border: none;\n    color: #fff;\n    background: none;\n}\n\n.subscribe-overlay-logo {\n    position: fixed;\n    top: 23px;\n    left: 30px;\n    height: 30px;\n}\n\n.subscribe-overlay-title {\n    display: inline-block;\n    margin: 0 0 10px 0;\n    font-size: 5.2rem;\n    line-height: 1.15em;\n}\n\n.subscribe-overlay-description {\n    margin: 0 auto 50px;\n    max-width: 650px;\n    color: #fff;\n    font-family: Georgia, serif;\n    font-size: 2.4rem;\n    line-height: 1.3em;\n    font-weight: 300;\n    opacity: 0.8;\n}\n\n.subscribe-overlay form {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin: 0 auto;\n    max-width: 540px;\n}\n\n.subscribe-overlay .form-group {\n    flex-grow: 1;\n}\n\n.subscribe-overlay .subscribe-email {\n    display: block;\n    padding: 14px 20px;\n    width: 100%;\n    border: none;\n    color: var(--midgrey);\n    font-size: 2rem;\n    line-height: 1em;\n    font-weight: normal;\n    letter-spacing: 0.5px;\n    user-select: text;\n    border-radius: 8px;\n    transition: border-color 0.15s linear;\n\n    -webkit-appearance: none;\n}\n\n.subscribe-email:focus {\n    outline: 0;\n    border-color: color-mod(var(--lightgrey) l(-2%));\n}\n\n.subscribe-overlay button {\n    display: inline-block;\n    margin: 0 0 0 15px;\n    padding: 0 25px;\n    height: 52px;\n    outline: none;\n    color: #fff;\n    font-size: 1.7rem;\n    line-height: 38px;\n    font-weight: 400;\n    text-align: center;\n    background: linear-gradient(\n    color-mod(var(--blue) whiteness(+7%)),\n    color-mod(var(--blue) lightness(-7%) saturation(-10%)) 60%,\n    color-mod(var(--blue) lightness(-7%) saturation(-10%)) 90%,\n    color-mod(var(--blue) lightness(-4%) saturation(-10%))\n    );\n    border-radius: 8px;\n\n    -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.subscribe-overlay button:active,\n.subscribe-overlay button:focus {\n    background: color-mod(var(--blue) lightness(-9%) saturation(-10%));\n}\n\n.subscribe-overlay .loading .button-loader {\n    top: 5px;\n}\n\n@media (max-width: 500px) {\n    .subscribe-overlay button {\n        margin: 12px 0 0;\n    }\n}\n\n\n/* 11. Site Footer\n/* ---------------------------------------------------------- */\n\n.site-footer {\n    position: relative;\n    padding-top: 20px;\n    padding-bottom: 60px;\n    color: #fff;\n    background: color-mod(var(--darkgrey) l(-5%));\n}\n\n.site-footer-content {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    align-items: center;\n    color: rgba(255,255,255,0.7);\n    font-size: 1.3rem;\n}\n\n.site-footer-content a {\n    color: rgba(255,255,255,0.7);\n}\n\n.site-footer-content a:hover {\n    color: rgba(255,255,255,1);\n    text-decoration: none;\n}\n\n.site-footer-nav {\n    display: flex;\n}\n\n.site-footer-nav a {\n    position: relative;\n    margin-left: 20px;\n}\n\n.site-footer-nav a:before {\n    content: \"\";\n    position: absolute;\n    top: 11px;\n    left: -11px;\n    display: block;\n    width: 2px;\n    height: 2px;\n    background: #fff;\n    border-radius: 100%;\n}\n\n.site-footer-nav a:first-of-type:before {\n    display: none;\n}\n\n@media (max-width: 650px) {\n    .site-footer-content {\n        flex-direction: column;\n    }\n\n    .site-footer-nav a:first-child {\n        margin-left: 0;\n    }\n}\n\n\n/* 12. Dark Mode\n/* ---------------------------------------------------------- */\n@media (prefers-color-scheme: dark) {\n    body {\n        color: rgba(255, 255, 255, 0.75);\n        background: var(--darkmode);\n    }\n\n    img {\n        opacity: 0.9;\n    }\n\n    .site-header-background:before {\n        background: rgba(0,0,0,0.6);\n    }\n\n    .post-feed {\n        background: var(--darkmode);\n    }\n\n    .post-card,\n    .post-card:hover {\n        border-bottom-color: color-mod(var(--darkmode) l(+8%));\n    }\n\n    .author-profile-image {\n        background: var(--darkmode);\n    }\n\n    .post-card-byline-content a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-card-byline-content a:hover {\n        color: #fff;\n    }\n\n    .post-card-image {\n        background: var(--darkmode);\n    }\n\n    .post-card-title {\n        color: rgba(255, 255, 255, 0.85);\n    }\n\n    .post-card-excerpt {\n        color: color-mod(var(--midgrey) l(+10%));\n    }\n\n    .author-avatar,\n    .static-avatar {\n        border-color: color-mod(var(--darkgrey) l(+2%));\n    }\n\n    .site-main,\n    .post-template .site-main,\n    .page-template .site-main {\n        background: var(--darkmode);\n    }\n\n    .post-full-content {\n        background: var(--darkmode);\n    }\n\n    .post-full-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .post-full-custom-excerpt {\n        color: color-mod(var(--midgrey) l(+10%));\n    }\n\n    .post-full-image {\n        background-color: color-mod(var(--darkmode) l(+8%));\n    }\n\n    .post-full-byline {\n        border-top-color: color-mod(var(--darkmode) l(+15%));\n    }\n\n    .post-full-byline-meta h4 a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-full-byline-meta h4 a:hover {\n        color: #fff;\n    }\n\n    .author-list-item .author-card {\n        background: color-mod(var(--darkmode) l(+4%));\n        box-shadow: 0 12px 26px rgba(0,0,0,0.4);\n    }\n\n    .author-list-item .author-card:before {\n        border-top-color: color-mod(var(--darkmode) l(+4%));\n    }\n\n    .no-image .author-social-link a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .post-full-content h1,\n    .post-full-content h2,\n    .post-full-content h3,\n    .post-full-content h4,\n    .post-full-content h6 {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .post-full-content a {\n        color: #fff;\n        box-shadow: inset 0 -1px 0 #fff;\n    }\n\n    .post-full-content strong {\n        color: #fff;\n    }\n\n    .post-full-content em {\n        color: #fff;\n    }\n\n    .post-full-content code {\n        color: #fff;\n        background: #000;\n    }\n\n    hr {\n        border-top-color: color-mod(var(--darkmode) l(+8%));\n    }\n\n    .post-full-content hr:after {\n        background: color-mod(var(--darkmode) l(+8%));\n        box-shadow: var(--darkmode) 0 0 0 5px;\n    }\n\n    .post-full-content figcaption {\n        color: rgba(255, 255, 255, 0.6);\n    }\n\n    .post-full-content table td:first-child {\n        background-image: linear-gradient(to right, var(--darkmode) 50%, color-mod(var(--darkmode) a(0%)) 100%);\n    }\n\n    .post-full-content table td:last-child {\n        background-image: linear-gradient(to left, var(--darkmode) 50%, color-mod(var(--darkmode) a(0%)) 100%);\n    }\n\n    .post-full-content table th {\n        color: rgba(255, 255, 255, 0.85);\n        background-color: color-mod(var(--darkmode) l(+8%));\n    }\n\n    .post-full-content table th,\n    .post-full-content table td {\n        border: color-mod(var(--darkmode) l(+8%)) 1px solid;\n    }\n\n    .post-full-content .kg-bookmark-container,\n    .post-full-content .kg-bookmark-container:hover {\n        color: rgba(255, 255, 255, 0.75);\n        box-shadow: 0 0 1px rgba(255,255,255,0.9);\n    }\n\n    .post-full-content input {\n        color: color-mod(var(--midgrey) l(-30%));\n    }\n\n    .kg-bookmark-title {\n        color: #fff;\n    }\n\n    .kg-bookmark-description {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .kg-bookmark-metadata {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    .site-archive-header .no-image {\n        color: rgba(255, 255, 255, 0.9);\n        background: var(--darkmode);\n    }\n\n    .site-archive-header .no-image .site-header-content {\n        border-bottom-color: color-mod(var(--darkmode) l(+15%));\n    }\n\n    .site-header-content .author-profile-image {\n        box-shadow: 0 0 0 6px hsla(0,0%,100%,0.04);\n    }\n\n    .subscribe-form {\n        border: none;\n        background: linear-gradient(color-mod(var(--darkmode) l(-6%)), color-mod(var(--darkmode) l(-3%)));\n    }\n\n    .subscribe-form-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    .subscribe-form p {\n        color: rgba(255, 255, 255, 0.7);\n    }\n\n    .subscribe-email {\n        border-color: color-mod(var(--darkmode) l(+6%));\n        color: rgba(255, 255, 255, 0.9);\n        background: color-mod(var(--darkmode) l(+3%));\n    }\n\n    .subscribe-email:focus {\n        border-color: color-mod(var(--darkmode) l(+25%));\n    }\n\n    .subscribe-form button {\n        opacity: 0.9;\n    }\n\n    .subscribe-form .invalid .message-error,\n    .subscribe-form .error .message-error {\n        color: color-mod(var(--red) l(+5%) s(-5%));\n    }\n\n    .subscribe-form .success .message-success {\n        color: color-mod(var(--green) l(+5%) s(-5%));\n    }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["global.css","screen.css"],"names":[],"mappings":"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","file":"screen.css","sourcesContent":["/* Reset\n/* ---------------------------------------------------------- */\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n    margin: 0;\n    padding: 0;\n    border: 0;\n    font: inherit;\n    font-size: 100%;\n    vertical-align: baseline;\n}\nbody {\n    line-height: 1;\n}\nol,\nul {\n    list-style: none;\n}\nblockquote,\nq {\n    quotes: none;\n}\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n    content: \"\";\n    content: none;\n}\ntable {\n    border-spacing: 0;\n    border-collapse: collapse;\n}\nimg {\n    display: block;\n    max-width: 100%;\n    height: auto;\n}\nhtml {\n    box-sizing: border-box;\n    font-family: sans-serif;\n\n    -ms-text-size-adjust: 100%;\n    -webkit-text-size-adjust: 100%;\n}\n*,\n*:before,\n*:after {\n    box-sizing: inherit;\n}\na {\n    background-color: transparent;\n}\na:active,\na:hover {\n    outline: 0;\n}\nb,\nstrong {\n    font-weight: bold;\n}\ni,\nem,\ndfn {\n    font-style: italic;\n}\nh1 {\n    margin: 0.67em 0;\n    font-size: 2em;\n}\nsmall {\n    font-size: 80%;\n}\nsub,\nsup {\n    position: relative;\n    font-size: 75%;\n    line-height: 0;\n    vertical-align: baseline;\n}\nsup {\n    top: -0.5em;\n}\nsub {\n    bottom: -0.25em;\n}\nimg {\n    border: 0;\n}\nsvg:not(:root) {\n    overflow: hidden;\n}\nmark {\n    background-color: #fdffb6;\n}\ncode,\nkbd,\npre,\nsamp {\n    font-family: monospace, monospace;\n    font-size: 1em;\n}\nkbd {\n    padding: 3px 5px;\n    font-family: var(--font-mono);\n    font-size: 1.5rem;\n    background: #f6f8fa;\n    border: 1px solid rgba(124, 139, 154, 0.25);\n    border-radius: 6px;\n    box-shadow: inset 0 -1px 0 rgba(124, 139, 154, 0.25);\n}\n@media (max-width: 600px) {\n    kbd {\n        font-size: 1.3rem;\n    }\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n    margin: 0; /* 3 */\n    color: inherit; /* 1 */\n    font: inherit; /* 2 */\n}\nbutton {\n    overflow: visible;\n    border: none;\n}\nbutton,\nselect {\n    text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\n/* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    cursor: pointer; /* 3 */\n\n    -webkit-appearance: button; /* 2 */\n}\nbutton[disabled],\nhtml input[disabled] {\n    cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n    padding: 0;\n    border: 0;\n}\ninput {\n    line-height: normal;\n}\ninput:focus {\n    outline: none;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n    box-sizing: border-box; /* 1 */\n    padding: 0; /* 2 */\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n    height: auto;\n}\ninput[type=\"search\"] {\n    box-sizing: content-box; /* 2 */\n\n    -webkit-appearance: textfield; /* 1 */\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\n}\nlegend {\n    padding: 0; /* 2 */\n    border: 0; /* 1 */\n}\ntextarea {\n    overflow: auto;\n}\ntable {\n    border-spacing: 0;\n    border-collapse: collapse;\n}\ntd,\nth {\n    padding: 0;\n}\n\n/* ==========================================================================\n   Base styles: opinionated defaults\n   ========================================================================== */\n\nhtml {\n    font-size: 62.5%;\n\n    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n    color: #35373A;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif;\n    font-size: 1.6rem;\n    line-height: 1.6em;\n    font-weight: 400;\n    font-style: normal;\n    letter-spacing: 0;\n    text-rendering: optimizeLegibility;\n    background: #fff;\n\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    -moz-font-feature-settings: \"liga\" on;\n}\n\n::selection {\n    text-shadow: none;\n    background: #daf2fd;\n}\n\nhr {\n    position: relative;\n    display: block;\n    width: 100%;\n    margin: 2.5em 0 3.5em;\n    padding: 0;\n    height: 1px;\n    border: 0;\n    border-top: 1px solid #f0f0f0;\n}\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n    vertical-align: middle;\n}\n\nfieldset {\n    margin: 0;\n    padding: 0;\n    border: 0;\n}\n\ntextarea {\n    resize: vertical;\n}\n\n::not(.gh-content) p,\n::not(.gh-content) ul,\n::not(.gh-content) ol,\n::not(.gh-content) dl,\n::not(.gh-content) blockquote {\n    margin: 0 0 1.5em 0;\n}\n\nol,\nul {\n    padding-left: 1.3em;\n    padding-right: 1.5em;\n}\n\nol ol,\nul ul,\nul ol,\nol ul {\n    margin: 0.5em 0 1em;\n}\n\nul {\n    list-style: disc;\n}\n\nol {\n    list-style: decimal;\n}\n\nul,\nol {\n    max-width: 100%;\n}\n\nli {\n    padding-left: 0.3em;\n    line-height: 1.6em;\n}\n\nli + li {\n    margin-top: 0.5em;\n}\n\ndt {\n    float: left;\n    margin: 0 20px 0 0;\n    width: 120px;\n    color: #daf2fd;\n    font-weight: 500;\n    text-align: right;\n}\n\ndd {\n    margin: 0 0 5px 0;\n    text-align: left;\n}\n\nblockquote {\n    margin: 1.5em 0;\n    padding: 0 1.6em 0 1.6em;\n    border-left: #daf2fd;\n}\n\nblockquote small {\n    display: inline-block;\n    margin: 0.8em 0 0.8em 1.5em;\n    font-size: 0.9em;\n    opacity: 0.8;\n}\n/* Quotation marks */\nblockquote small:before {\n    content: \"\\2014 \\00A0\";\n}\n\nblockquote cite {\n    font-weight: bold;\n}\nblockquote cite a {\n    font-weight: normal;\n}\n\na {\n    color: #15171A;\n    text-decoration: none;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n    margin-top: 0;\n    line-height: 1.15;\n    font-weight: 600;\n    text-rendering: optimizeLegibility;\n    letter-spacing: -0.01em;\n}\n\nh1 {\n    margin: 0 0 0.5em 0;\n    font-size: 4.8rem;\n    font-weight: 700;\n    letter-spacing: -0.015em;\n}\n@media (max-width: 600px) {\n    h1 {\n        font-size: 2.8rem;\n    }\n}\n\nh2 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 2.8rem;\n    font-weight: 700;\n}\n@media (max-width: 600px) {\n    h2 {\n        font-size: 2.3rem;\n    }\n}\n\nh3 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 2.4rem;\n    font-weight: 600;\n}\n@media (max-width: 600px) {\n    h3 {\n        font-size: 1.7rem;\n    }\n}\n\nh4 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 2rem;\n}\n@media (max-width: 600px) {\n    h4 {\n        font-size: 1.7rem;\n    }\n}\n\nh5 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 2rem;\n}\n\nh6 {\n    margin: 1.5em 0 0.5em 0;\n    font-size: 1.8rem;\n}\n","/* Table of Contents\n/* ------------------------------------------------------------\n\nThis is a development CSS file which is built to a minified\nproduction stylesheet in assets/built/screen.css\n\n1.  Global Styles\n2.  Layout\n3.  Special Templates\n4.  Site Header\n  4.1 Home header\n  4.2 Archive header\n5.  Site Navigation\n6.  Post Feed\n7.  Single Post\n  7.1. Post Byline\n  7.2. Members Subscribe Form\n  7.4. Related Posts\n  7.5. Koenig Styles\n8.  Author Template\n9.  Error Template\n11. Site Footer\n12. Dark Mode\n\n*/\n\n/* 1. Global - Set up the things\n/* ---------------------------------------------------------- */\n\n/* Import CSS reset and base styles */\n@import \"global.css\";\n\n:root {\n\n    /* Colours */\n    --color-green: #a4d037;\n    --color-yellow: #fecd35;\n    --color-red: #f05230;\n    --color-darkgrey: #15171A;\n    --color-midgrey: #738a94;\n    --color-lightgrey: #c5d2d9;\n    --color-wash: #e5eff5;\n    --color-darkmode: #151719;\n\n    /*\n    An accent color is also set by Ghost itself in\n    Ghost Admin > Settings > Brand\n\n    --ghost-accent-color: {value};\n\n    You can use this variable throughout your styles\n     */\n\n    /* Fonts */\n    --font-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n    --font-serif: Georgia, Times, serif;\n    --font-mono: Menlo, Courier, monospace;\n\n}\n\n\n/* 2. Layout - Page building blocks\n/* ---------------------------------------------------------- */\n\n.viewport {\n    display: flex;\n    flex-direction: column;\n    min-height: 100vh;\n}\n\n.site-content {\n    flex-grow: 1;\n}\n\n/* Full width page blocks */\n.outer {\n    position: relative;\n    padding: 0 4vmin;\n}\n\n/* Centered content container blocks */\n.inner {\n    margin: 0 auto;\n    max-width: 1200px;\n    width: 100%;\n}\n\n\n/* 4. Site Header\n/* ---------------------------------------------------------- */\n\n.site-header {\n    position: relative;\n    color: #fff;\n    background: var(--ghost-accent-color);\n}\n\n.site-header-cover {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n}\n\n.site-header-content {\n    position: relative;\n    z-index: 100;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    padding: 6vw 3vw;\n    min-height: 200px;\n    max-height: 340px;\n    text-align: center;\n}\n\n.site-title {\n    z-index: 10;\n    margin: 0 0 0.15em;\n    padding: 0;\n}\n\n.site-logo {\n    max-height: 55px;\n}\n\n.site-header-content p {\n    z-index: 10;\n    max-width: 600px;\n    margin: 0 auto;\n    line-height: 1.2em;\n    opacity: 0.8;\n}\n\n@media (max-width: 600px) {\n    .site-header-content p {\n        max-width: 80vmin;\n        font-size: 1.8rem;\n    }\n}\n\n/* 4.1 Home header\n/* ---------------------------------------------------------- */\n\n.site-home-header {\n    position: relative;\n    z-index: 1000;\n    overflow: hidden;\n}\n\n.site-header-content {\n    padding: 18vmin 4vmin;\n    font-size: 2.5rem;\n    font-weight: 400;\n    color: #fff;\n    background: var(--ghost-accent-color);\n}\n\n.site-header-content.large {\n    padding-top: 28vmin;\n    padding-bottom: 28vmin;\n}\n\n\n/* 5. Site Navigation\n/* ---------------------------------------------------------- */\n\n.gh-head {\n    padding: 1vmin 4vmin;\n    font-size: 1.6rem;\n    line-height: 1.3em;\n    color: #fff;\n    background: var(--ghost-accent-color);\n}\n\n.gh-head a {\n    color: inherit;\n    text-decoration: none;\n}\n\n.gh-head-inner {\n    display: grid;\n    grid-gap: 2.5vmin;\n    grid-template-columns: auto auto 1fr;\n    grid-auto-flow: row dense;\n}\n\n\n/* Brand\n/* ---------------------------------------------------------- */\n\n.gh-head-brand {\n    display: flex;\n    align-items: center;\n    height: 40px;\n    max-width: 200px;\n    text-align: center;\n    word-break: break-all;\n}\n\n.gh-head-logo {\n    display: block;\n    padding: 10px 0;\n    font-weight: 700;\n    font-size: 2rem;\n    line-height: 1.2em;\n    letter-spacing: -0.02em;\n}\n\n.gh-head-logo img {\n    max-height: 26px;\n}\n\n\n/* Primary Navigation\n/* ---------------------------------------------------------- */\n\n.gh-head-menu {\n    display: flex;\n    align-items: center;\n    font-weight: 500;\n}\n\n.gh-head-menu .nav {\n    display: inline-flex;\n    flex-wrap: wrap;\n    align-items: center;\n    list-style: none;\n    margin: 0;\n    padding: 0;\n}\n\n.gh-head-menu .nav li {\n    margin: 0 2.5vmin 0 0;\n    padding: 0;\n}\n\n.gh-head-menu .nav a {\n    display: inline-block;\n    padding: 5px 0;\n    opacity: 0.8\n}\n\n.gh-head-menu .nav a:hover {\n    opacity: 1;\n}\n\n\n/* Secondary Navigation\n/* ---------------------------------------------------------- */\n\n.gh-head-actions {\n    display: flex;\n    justify-content: flex-end;\n    align-items: center;\n    list-style: none;\n    text-align: right;\n}\n\n.gh-head-actions-list {\n    display: inline-flex;\n    flex-wrap: wrap;\n    justify-content: flex-end;\n    align-items: center;\n}\n\n.gh-head-actions-list a:not([class]) {\n    display: inline-block;\n    margin: 0 0 0 1.5vmin;\n    padding: 5px 0;\n}\n\n.gh-social {\n    margin: 0 1.5vmin 0 0;\n}\n\n.gh-social a {\n    opacity: 0.8\n}\n\n.gh-social a + a {\n    margin-left: 0.8rem;\n}\n\n.gh-social a:hover {\n    opacity: 1;\n}\n\n.gh-social svg {\n    height: 22px;\n    width: 22px;\n    fill: #fff;\n}\n\n.gh-social-facebook svg {\n    height: 20px;\n    width: 20px;\n}\n\na.gh-head-button {\n    display: block;\n    padding: 8px 15px;\n    color: var(--button-text-color, var(--color-darkgrey));\n    font-weight: 500;\n    letter-spacing: -0.015em;\n    font-size: 1.5rem;\n    line-height: 1em;\n    background: var(--button-bg-color, #fff);\n    border-radius: 30px;\n}\n\n\n/* Mobile Menu Trigger\n/* ---------------------------------------------------------- */\n\n.gh-burger {\n    position: relative;\n    display: none;\n    cursor: pointer;\n}\n\n.gh-burger-box {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 33px;\n    height: 33px;\n}\n\n.gh-burger-inner {\n    width: 100%;\n    height: 100%;\n}\n\n.gh-burger-box::before {\n    position: absolute;\n    display: block;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    margin: auto;\n    content: '';\n    width: 100%;\n    height: 1px;\n    background: currentcolor;\n    transition: transform 300ms cubic-bezier(.2,.6,.3,1), width 300ms cubic-bezier(.2,.6,.3,1);\n    will-change: transform, width;\n}\n\n.gh-burger-inner::before,\n.gh-burger-inner::after {\n    position: absolute;\n    display: block;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    margin: auto;\n    content: '';\n    width: 100%;\n    height: 1px;\n    background: currentcolor;\n    transition: transform 250ms cubic-bezier(.2,.7,.3,1), width 250ms cubic-bezier(.2,.7,.3,1);\n    will-change: transform, width;\n}\n\n.gh-burger-inner::before {\n    transform: translatey(-6px);\n}\n.gh-burger-inner::after {\n    transform: translatey(6px);\n}\n\nbody:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::before {\n    transform: translatey(-8px);\n}\nbody:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {\n    transform: translatey(8px);\n}\n\n.gh-head-open .gh-burger-box::before {\n    width: 0;\n    transform: translatex(19px);\n    transition: transform 200ms cubic-bezier(.2,.7,.3,1), width 200ms cubic-bezier(.2,.7,.3,1);\n}\n\n.gh-head-open .gh-burger-inner::before {\n    width: 26px;\n    transform: translatex(6px) rotate(135deg);\n}\n\n.gh-head-open .gh-burger-inner::after {\n    width: 26px;\n    transform: translatex(6px) rotate(-135deg);\n}\n\n\n/* Mobile Menu\n/* ---------------------------------------------------------- */\n/* IDs needed to ensure sufficient specificity */\n\n@media (max-width: 900px) {\n    .gh-burger {\n        display: inline-block;\n    }\n    #gh-head {\n        transition: all 0.4s ease-out;\n        overflow: hidden;\n    }\n    #gh-head .gh-head-inner {\n        height: 100%;\n        grid-template-columns: 1fr;\n    }\n    #gh-head .gh-head-brand {\n        position: relative;\n        z-index: 10;\n        grid-column-start: auto;\n        max-width: none;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        user-select: none;\n    }\n    .home-template #gh-head.has-cover .gh-head-brand {\n        justify-content: flex-end;\n    }\n    #gh-head .gh-head-menu {\n        align-self: center;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        text-align: center;\n        margin: 0 0 10vh 0;\n        font-weight: 300;\n        font-size: 3.6rem;\n        line-height: 1.1em;\n    }\n    #gh-head .gh-head-menu .nav li {\n        margin: 5px 0;\n    }\n    #gh-head .gh-head-menu .nav a {\n        padding: 8px 0;\n    }\n    #gh-head .gh-head-menu .nav {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n    #gh-head .gh-head-actions {\n        padding: 20px 0;\n        justify-content: center;\n        text-align: left;\n    }\n    #gh-head .gh-head-actions a {\n        margin: 0 10px;\n    }\n    /* Hide collapsed content */\n    #gh-head .gh-head-actions,\n    #gh-head .gh-head-menu {\n        display: none;\n    }\n    /* Open the menu */\n    .gh-head-open {\n        overflow: hidden;\n        height: 100vh;\n    }\n    .gh-head-open #gh-head {\n        position: fixed;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        z-index: 3999999;\n        overflow-y: scroll;\n    }\n    .gh-head-open #gh-head .gh-head-inner {\n        grid-template-rows: auto 1fr auto;\n    }\n    .gh-head-open #gh-head .gh-head-actions,\n    .gh-head-open #gh-head .gh-head-menu {\n        display: flex;\n    }\n}\n\n@media (max-width: 600px) {\n    #gh-head .gh-head-menu {\n        font-size: 6vmin;\n    }\n}\n\n.home-template .gh-head.has-cover {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    z-index: 2000;\n}\n\n.home-template .gh-head.has-cover {\n    background: transparent;\n}\n\n.home-template.gh-head-open .gh-head {\n    background: var(--ghost-accent-color);\n}\n\n.home-template .gh-head.has-cover .gh-head-logo {\n    display: none;\n}\n.home-template .gh-head.has-cover .gh-head-menu {\n    margin-left: -2.5vmin;\n}\n\n\n/* 6. Post Feed\n/* ---------------------------------------------------------- */\n\n.post-feed {\n    position: relative;\n    display: grid;\n    grid-gap: 4vmin;\n    grid-template-columns: 1fr 1fr 1fr;\n    padding: 4vmin 0;\n}\n\n.post-feed.list {\n    row-gap: 6vmin;\n    max-width: 940px;\n    margin: 2vmin auto 0;\n}\n\n@media (max-width: 1000px) {\n    .post-feed {\n        grid-template-columns: 1fr 1fr;\n    }\n}\n@media (max-width: 700px) {\n    .post-feed {\n        grid-template-columns: 1fr;\n        grid-gap: 40px;\n    }\n}\n\n.post-card {\n    position: relative;\n    flex: 1 1 301px;\n    display: flex;\n    flex-direction: column;\n    min-height: 220px;\n    background-size: cover;\n    word-break: break-word;\n}\n\n@media (max-width: 700px) {\n    .post-card {\n        min-height: auto;\n    }\n}\n\n.post-card-image-link {\n    position: relative;\n    display: block;\n    overflow: hidden;\n    border-radius: 3px;\n}\n\n.post-card-image {\n    width: 100%;\n    height: 200px;\n    background: var(--color-lightgrey) no-repeat center center;\n\n    object-fit: cover;\n}\n\n.post-card-content-link {\n    position: relative;\n    display: block;\n    color: var(--color-darkgrey);\n}\n\n.post-card-content-link:hover {\n    text-decoration: none;\n}\n\n.post-card-header {\n    margin: 20px 0 0;\n}\n\n.post-feed .no-image .post-card-content-link {\n    padding: 0;\n}\n\n.no-image .post-card-header {\n    margin-top: 0;\n}\n\n.post-card-primary-tag {\n    margin: 0 0 0.2em;\n    color: var(--ghost-accent-color);\n    font-size: 1.2rem;\n    font-weight: 500;\n    letter-spacing: 0.2px;\n    text-transform: uppercase;\n}\n\n.post-card-title {\n    margin: 0 0 0.4em;\n    font-size: 2.4rem;\n    transition: color 0.2s ease-in-out;\n}\n\n.no-image .post-card-title {\n    margin-top: 0;\n}\n\n.has-serif-title .post-card-title {\n    font-family: var(--font-serif);\n}\n\n.post-card-content {\n    flex-grow: 1;\n    display: flex;\n    flex-direction: column;\n}\n\n.post-card-excerpt {\n    max-width: 56em;\n    color: color-mod(var(--color-midgrey) l(-8%));\n    font-family: var(--font-serif);\n}\n\n.has-sans-body .post-card-excerpt {\n    font-family: var(--font-sans-serif);\n}\n\n.post-card-excerpt p {\n    margin-bottom: 1em;\n    display: -webkit-box;\n    overflow-y: hidden;\n    -webkit-line-clamp: 3;\n    -webkit-box-orient: vertical;\n    word-break: break-word;\n}\n\n.post-card-meta {\n    display: flex;\n    align-items: center;\n    padding: 0;\n}\n\n.author-profile-image,\n.avatar-wrapper {\n    display: block;\n    width: 100%;\n    height: 100%;\n    background: color-mod(var(--color-lightgrey) l(+10%));\n    border-radius: 100%;\n\n    object-fit: cover;\n}\n\n.post-card-meta .profile-image-wrapper,\n.post-card-meta .avatar-wrapper {\n    position: relative;\n}\n\n.author-list {\n    display: flex;\n    flex-wrap: wrap;\n    margin: 0 0 0 4px;\n    padding: 0;\n    list-style: none;\n}\n\n.author-list-item {\n    position: relative;\n    flex-shrink: 0;\n    margin: 0;\n    padding: 0;\n}\n\n.static-avatar {\n    display: block;\n    overflow: hidden;\n    margin: 0 0 0 -6px;\n    width: 36px;\n    height: 36px;\n    border-radius: 100%;\n    box-shadow: 0 0 0 1px rgba(255,255,255,0.2);\n}\n\n.post-card-byline-content {\n    flex: 1 1 50%;\n    display: flex;\n    flex-direction: column;\n    margin: 0 0 0 8px;\n    color: color-mod(var(--color-midgrey) l(+10%));\n    font-size: 1.4rem;\n    line-height: 1.2em;\n    font-weight: 400;\n}\n\n.post-card-byline-content span {\n    margin: 0;\n}\n\n.post-card-byline-content a {\n    color: color-mod(var(--color-darkgrey) l(+15%));\n    font-weight: 600;\n}\n\n.post-card-byline-date {\n    font-size: 1.3rem;\n    line-height: 1.5em;\n}\n\n.post-card-byline-date .bull {\n    display: inline-block;\n    margin: 0 2px;\n    opacity: 0.6;\n}\n\n.single-author-byline {\n    display: flex;\n    flex-direction: column;\n    margin-left: 5px;\n    color: color-mod(var(--color-midgrey) l(-10%));\n    font-size: 1.3rem;\n    line-height: 1.4em;\n    font-weight: 500;\n}\n\n.single-author {\n    display: flex;\n    align-items: center;\n}\n\n.single-author .static-avatar {\n    margin-left: -2px;\n}\n\n.single-author-name {\n    display: inline-block;\n}\n\n/* Special Styling for home page grid (below):\n\nThe first post in the list is styled to be bigger than the others and take over\nthe full width of the grid to give it more emphasis. Wrapped in a media query to\nmake sure this only happens on large viewports / desktop-ish devices.\n\n */\n\n@media (min-width: 701px) {\n    .post-feed.list .post-card-large {\n        grid-column: 1 / span 3;\n        display: grid;\n        grid-gap: 4vmin;\n        grid-template-columns: 3fr 5fr;\n        min-height: auto;\n        border-top: 0;\n    }\n\n    .post-feed.list .post-card-large.no-image {\n        grid-template-columns: 1fr;\n    }\n\n    .post-feed.list .post-card-large:not(.no-image) .post-card-header {\n        margin-top: 0;\n    }\n\n    .post-feed.list .post-card-large .post-card-content {\n        justify-content: flex-start;\n        margin-top: -6px;\n    }\n}\n\n@media (min-width: 1001px) {\n    .post-card-large {\n        grid-column: 1 / span 3;\n        display: grid;\n        grid-gap: 4vmin;\n        grid-template-columns: 1fr 1fr 1fr;\n        min-height: 280px;\n        border-top: 0;\n    }\n\n    .post-card-large:not(.no-image) .post-card-header {\n        margin-top: 0;\n    }\n\n    .post-card-large .post-card-image-link {\n        position: relative;\n        grid-column: 1 / span 2;\n        margin-bottom: 0;\n        min-height: 380px;\n    }\n\n    .post-feed.list .post-card-large .post-card-image-link {\n        grid-column: 1 / span 1;\n        height: max-content;\n        min-height: auto;\n    }\n\n    .post-feed.list .post-card-large .post-card-image-link::after {\n        content: \"\";\n        display: block;\n        padding-bottom: 60%;\n    }\n\n    .post-card-large .post-card-image {\n        position: absolute;\n        width: 100%;\n        height: 100%;\n    }\n\n    .post-card-large .post-card-content {\n        justify-content: center;\n    }\n\n    .post-card-large .post-card-title {\n        margin-top: 0;\n        font-size: 3.2rem;\n    }\n\n    .post-feed.list .post-card-large .post-card-title {\n        font-size: 2.4rem;\n    }\n\n    .post-card-large .post-card-excerpt p {\n        font-size: 1.7rem;\n        line-height: 1.55em;\n        -webkit-line-clamp: 8;\n    }\n}\n\n\n@media (max-width: 500px) {\n    .post-card-title {\n        font-size: 1.9rem;\n    }\n\n    .post-card-excerpt {\n        font-size: 1.6rem;\n    }\n}\n\n\n/* 7. Single Post\n/* ---------------------------------------------------------- */\n\n.article {\n    padding: 8vmin 0;\n    word-break: break-word;\n}\n\n.article-header {\n    padding: 0 0 6vmin 0;\n}\n\n.article-tag {\n    display: flex;\n    justify-content: flex-start;\n    align-items: center;\n    margin: 0 0 0.5rem;\n    color: var(--color-midgrey);\n    font-size: 1.3rem;\n    line-height: 1.4em;\n    letter-spacing: 0.02em;\n    font-weight: 600;\n    text-transform: uppercase;\n}\n\n.article-tag a {\n    color: var(--ghost-accent-color);\n}\n\n.article-title {\n    color: color-mod(var(--color-darkgrey) l(-5%));\n}\n\n.has-serif-title .article-title {\n    font-family: var(--font-serif);\n}\n\n.article-excerpt {\n    margin: 0 0 1rem;\n    font-size: 2rem;\n    line-height: 1.4em;\n    opacity: 0.6;\n}\n\n.gh-canvas .article-image {\n    grid-column: wide-start / wide-end;\n    width: 100%;\n    margin: 6vmin 0 0;\n}\n\n.image-full .article-image {\n    grid-column: full-start / full-end;\n}\n\n.image-small .article-image {\n    grid-column: main-start / main-end;\n}\n\n.gh-canvas .article-image img {\n    display: block;\n    margin-left: auto;\n    margin-right: auto;\n    width: 100%;\n}\n\n@media (max-width: 600px) {\n    .article-excerpt {\n        font-size: 1.8rem;\n    }\n}\n\n/* -------- */\n\n/* Content grid\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    display: grid;\n    grid-template-columns:\n        [full-start]\n        minmax(4vmin, auto)\n            [wide-start]\n            minmax(auto, 240px)\n                [main-start]\n                    min(720px, calc(100% - 8vw))\n                [main-end]\n            minmax(auto, 240px)\n            [wide-end]\n        minmax(4vmin, auto)\n        [full-end]\n    ;\n}\n\n.gh-canvas > * {\n    grid-column: main-start / main-end;\n}\n\n.kg-width-wide {\n    grid-column: wide-start / wide-end;\n}\n\n.kg-width-full {\n    grid-column: full-start / full-end;\n}\n\n.kg-width-full img {\n    width: 100%;\n}\n\n\n/* Content\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/* Default vertical spacing */\n.gh-content > * + * {\n    margin-top: 4vmin;\n    margin-bottom: 0;\n}\n\n/* [id] represents all headings h1-h6, reset all margins */\n.gh-content > [id] {\n    margin: 0;\n    color: var(--color-darkgrey);\n}\n\n.has-serif-title .gh-content > [id] {\n    font-family: var(--font-serif);\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: 2em 0 0;\n}\n\n/* Add a small margin between a heading and anything after it */\n.gh-content > [id] + * {\n    margin-top: 1.5rem !important;\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: 6vmin;\n}\n.gh-content > hr + *,\n.gh-content > blockquote + * {\n    margin-top: 6vmin !important;\n}\n\n/* Now the content typography styles */\n.gh-content a {\n    color: var(--ghost-accent-color);\n    text-decoration: underline;\n    word-break: break-word;\n}\n\n.gh-content > blockquote:not([class]),\n.gh-content > ol,\n.gh-content > ul,\n.gh-content > dl,\n.gh-content > p {\n    font-family: var(--font-serif);\n    font-weight: 400;\n    font-size: 2.1rem;\n    line-height: 1.6em;\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-family: var(--font-serif);\n    font-weight: 400;\n    font-size: 1.9rem;\n    line-height: 1.6em;\n}\n\n.gh-content .kg-product-card .kg-product-card-description > p,\n.gh-content .kg-product-card .kg-product-card-description > ol,\n.gh-content .kg-product-card .kg-product-card-description > ul {\n    font-size: 1.7rem;\n    line-height: 1.6em;\n}\n\n.gh-content .kg-callout-card .kg-callout-emoji {\n    font-size: 2.1rem;\n    line-height: 1.4em;\n}\n\n.gh-content .kg-toggle-card .kg-toggle-heading-text {\n    font-size: 2.0rem;\n}\n\n.has-sans-body .gh-content > blockquote,\n.has-sans-body .gh-content > ol,\n.has-sans-body .gh-content > ul,\n.has-sans-body .gh-content > dl,\n.has-sans-body .gh-content > p,\n.has-sans-body .gh-content .kg-callout-card .kg-callout-text,\n.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > ol,\n.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > ul,\n.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > p {\n    font-family: var(--font-sans);\n}\n\n.gh-content > ul,\n.gh-content > ol,\n.gh-content > dl,\n.gh-content .kg-toggle-card .kg-toggle-content > ol,\n.gh-content .kg-toggle-card .kg-toggle-content > ul,\n.gh-content .kg-product-card .kg-product-card-description > ol,\n.gh-content .kg-product-card .kg-product-card-description > ul {\n    padding-left: 1.9em;\n}\n\n.gh-content > blockquote:not([class]) {\n    position: relative;\n    font-style: italic;\n    padding: 0;\n}\n\n.gh-content > blockquote:not([class])::before {\n    content: \"\";\n    position: absolute;\n    left: -1.5em;\n    top: 0;\n    bottom: 0;\n    width: 0.3rem;\n    background: var(--ghost-accent-color);\n}\n\n.gh-content :not(pre) > code {\n    vertical-align: middle;\n    padding: 0.15em 0.4em 0.15em;\n    border: #e1eaef 1px solid;\n    font-weight: 400 !important;\n    font-size: 0.9em;\n    line-height: 1em;\n    color: #15171A;\n    background: #f0f6f9;\n    border-radius: 0.25em;\n}\n\n.gh-content pre {\n    overflow: auto;\n    padding: 16px 20px;\n    color: var(--color-wash);\n    font-size: 1.4rem;\n    line-height: 1.5em;\n    background: var(--color-darkgrey);\n    border-radius: 5px;\n    box-shadow: 0 2px 6px -2px rgba(0,0,0,.1), 0 0 1px rgba(0,0,0,.4);\n}\n\n@media (max-width: 650px) {\n    .gh-content > blockquote:not([class]),\n    .gh-content > ol,\n    .gh-content > ul,\n    .gh-content > dl,\n    .gh-content > p,\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: 1.7rem;\n    }\n\n    .gh-content .kg-product-card .kg-product-card-description > p,\n    .gh-content .kg-product-card .kg-product-card-description > ol,\n    .gh-content .kg-product-card .kg-product-card-description > ul {\n        font-size: 1.5rem;\n    }\n\n    .gh-content blockquote:not([class])::before {\n        left: -4vmin;\n    }\n}\n\n\n/* Cards\n/* ---------------------------------------------------------- */\n\n/* Cards are dynamic blocks of content which appear within Ghost\nposts, for example: embedded videos, tweets, galleries, or\nspecially styled bookmark links. We add extra styling here to\nmake sure they look good, and are given a bit of extra spacing. */\n\n/* Add extra margin before/after any cards,\nexcept for when immediately preceeded by a heading */\n.gh-content :not(.kg-card):not([id]) + .kg-card {\n    margin-top: 6vmin;\n    margin-bottom: 0;\n}\n.gh-content .kg-card + :not(.kg-card) {\n    margin-top: 6vmin;\n    margin-bottom: 0;\n}\n\n/* This keeps small embeds centered */\n.kg-embed-card {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    width: 100%;\n}\n\n/* This keeps small iamges centered */\n.kg-image-card img {\n    margin: auto;\n}\n\n.has-serif-title .kg-toggle-card .kg-toggle-heading-text {\n    font-family: var(--font-serif);\n}\n\n.gh-content .kg-callout-card-accent a {\n    text-decoration: underline;\n}\n\n.kg-blockquote-alt {\n    font-family: var(--font-serif);\n    color: var(--color-midgrey);\n}\n\n.has-sans-body .kg-blockquote-alt {\n    font-family: var(--font-sans);\n}\n\n.kg-card.kg-header-card.kg-style-dark {\n    background: var(--color-darkgrey);\n}\n\n.kg-header-card.kg-style-light h2.kg-header-card-header {\n    color: color-mod(var(--color-darkgrey) l(-5%));\n}\n\n.has-serif-title .kg-header-card h2.kg-header-card-header {\n    font-family: var(--font-serif);\n}\n\n\n/* Captions */\nfigcaption {\n    padding: 1.5rem 1.5rem 0;\n    text-align: center;\n    color: rgba(0,0,0,0.5);\n    font-weight: 600;\n    font-size: 1.3rem;\n    line-height: 1.4em;\n}\nfigcaption strong {\n    color: rgba(0,0,0,0.8);\n}\nfigcaption a {\n    color: var(--ghost-accent-color);\n}\n\n\n/* Highly specific styles for traditional Instagram embeds */\niframe.instagram-media {\n    margin-top: 6vmin !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    margin-bottom: 0 !important;\n}\n\niframe.instagram-media + script + :not([id]) {\n    margin-top: 6vmin;\n}\n\n\n/* Card captions\n/* ---------------------------------------------------------- */\n\n.kg-width-full.kg-card-hascaption {\n    display: grid;\n    grid-template-columns: inherit;\n}\n\n.kg-width-wide.kg-card-hascaption img {\n    grid-column: wide-start / wide-end;\n}\n.kg-width-full.kg-card-hascaption img {\n    grid-column: 1 / -1;\n}\n\n.kg-width-full.kg-card-hascaption figcaption {\n    grid-column: main-start / main-end;\n}\n\n.article-comments {\n    margin: 6vmin 0 0 0;\n}\n\n/* -----old------ */\n\n.footnotes-sep {\n    margin-bottom: 30px;\n}\n\n.footnotes {\n    font-size: 1.5rem;\n}\n\n.footnotes p {\n    margin: 0;\n}\n\n.footnote-backref {\n    font-size: 1.2rem;\n    font-weight: bold;\n    text-decoration: none !important;\n    box-shadow: none !important;\n}\n\n/* Tables */\n.post-full-content table {\n    display: inline-block;\n    overflow-x: auto;\n    margin: 0.5em 0 2.5em;\n    max-width: 100%;\n    width: auto;\n    border-spacing: 0;\n    border-collapse: collapse;\n    font-family: var(--font-sans-serif);\n    font-size: 1.6rem;\n    white-space: nowrap;\n    vertical-align: top;\n}\n\n.post-full-content table {\n    -webkit-overflow-scrolling: touch;\n    background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;\n    background-attachment: scroll, scroll;\n    background-size: 10px 100%, 10px 100%;\n    background-repeat: no-repeat;\n}\n\n.post-full-content table td:first-child {\n    background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n    background-size: 20px 100%;\n    background-repeat: no-repeat;\n}\n\n.post-full-content table td:last-child {\n    background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);\n    background-position: 100% 0;\n    background-size: 20px 100%;\n    background-repeat: no-repeat;\n}\n\n.post-full-content table th {\n    color: var(--color-darkgrey);\n    font-size: 1.2rem;\n    font-weight: 700;\n    letter-spacing: 0.2px;\n    text-align: left;\n    text-transform: uppercase;\n    background-color: color-mod(var(--color-wash) l(+4%));\n}\n\n.post-full-content table th,\n.post-full-content table td {\n    padding: 6px 12px;\n    border: color-mod(var(--color-wash) l(-1%) s(-5%)) 1px solid;\n}\n\n\n/* 7.1. Post Byline\n/* ---------------------------------------------------------- */\n\n.article-byline {\n    display: flex;\n    justify-content: space-between;\n    margin: 20px 0 0;\n}\n\n.article-byline-content {\n    flex-grow: 1;\n    display: flex;\n    align-items: center;\n}\n\n.article-byline-content .author-list {\n    justify-content: flex-start;\n    padding: 0 12px 0 0;\n}\n\n.article-byline-meta {\n    color: color-mod(var(--color-midgrey));\n    font-size: 1.4rem;\n    line-height: 1.2em;\n}\n\n.article-byline-meta h4 {\n    margin: 0 0 3px;\n    font-size: 1.6rem;\n}\n\n.article-byline-meta .bull {\n    display: inline-block;\n    margin: 0 2px;\n    opacity: 0.6;\n}\n\n.author-avatar {\n    display: block;\n    overflow: hidden;\n    margin: 0 -4px;\n    width: 50px;\n    height: 50px;\n    border: #fff 2px solid;\n    border-radius: 100%;\n    transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 700ms;\n}\n\n.basic-info .avatar-wrapper {\n    position: relative;\n    margin: 0;\n    width: 60px;\n    height: 60px;\n    border: none;\n    background: rgba(229, 239, 245, 0.1);\n}\n\n.basic-info .avatar-wrapper svg {\n    margin: 0;\n    width: 60px;\n    height: 60px;\n    opacity: 0.15;\n}\n\n.page-template .article-title {\n    margin-bottom: 0;\n}\n\n\n/* 7.3. Subscribe\n/* ---------------------------------------------------------- */\n\n.footer-cta {\n    position: relative;\n    margin-bottom: -40px;\n    padding: 9vmin 4vmin 10vmin;\n    color: #fff;\n    text-align: center;\n    background: var(--color-darkgrey);\n}\n\n.footer-cta.cta-alt {\n    padding: 2vmin 4vmin 12vmin;\n    background: transparent;\n}\n\n/* Increases the default h2 size by 15%, for small and large screens */\n.footer-cta h2 {\n    margin: 0 0 30px;\n    font-size: 3.2rem;\n}\n\n.footer-cta.cta-alt h2 {\n    color: var(--color-darkgrey);\n}\n\n@media (max-width: 600px) {\n    .footer-cta h2 {\n        font-size: 2.65rem;\n    }\n}\n\n.footer-cta-button {\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 500px;\n    padding: 5px 5px 5px 15px;\n    font-size: 1.8rem;\n    color: var(--color-midgrey);\n    background: #fff;\n    border-radius: 8px;\n}\n\n.footer-cta.cta-alt .footer-cta-button {\n    border: 1px solid var(--color-lightgrey);\n}\n\n.footer-cta-button span {\n    display: inline-block;\n    padding: 10px 15px;\n    color: #fff;\n    font-weight: 500;\n    background: var(--ghost-accent-color);\n    border-radius: 5px;\n}\n\n\n/* 7.4. Read more\n/* ---------------------------------------------------------- */\n\n.read-more-wrap {\n    width: 100%;\n    padding: 4vmin;\n    margin: 40px auto -40px;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    background: color-mod(var(--color-darkgrey) l(-5%));\n}\n\n.read-more {\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr;\n    grid-gap: 4vmin;\n}\n\n.read-more .post-card-title {\n    color: #fff;\n    opacity: 0.8;\n}\n\n.read-more .post-card-excerpt {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.read-more .post-card-byline-content a {\n    color: #fff;\n}\n\n\n@media (max-width: 1000px) {\n    .read-more {\n        grid-template-columns: 1fr 1fr;\n    }\n    .read-more article:nth-child(3) {\n        display: none;\n    }\n}\n\n@media (max-width: 700px) {\n    .read-more {\n        grid-template-columns: 1fr;\n    }\n    .read-more article:nth-child(2) {\n        display: none;\n    }\n}\n\n\n/* 8. Author Template\n/* ---------------------------------------------------------- */\n\n.author-template .posts {\n    position: relative;\n    height: 100%;\n    display: grid;\n    grid-template-columns: 200px 1fr 1fr;\n    grid-gap: 4vmin;\n}\n\n.author-template .posts .post-feed {\n    grid-column: 2 / 4;\n    grid-template-columns: 1fr 1fr;\n}\n\n.author-profile {\n    padding: 4vmin 0;\n}\n\n.author-profile-content {\n    height: auto;\n    position: sticky;\n    top: 4vmin;\n    font-size: 1.4rem;\n    line-height:  1.4em;\n}\n\n.author-profile-pic {\n    display: block;\n    width: 150px;\n    height: 150px;\n    object-fit: cover;\n    margin: 0 0 2rem;\n    background: color-mod(var(--color-lightgrey) l(+10%));\n    border-radius: 50%;\n}\n\n.author-profile h1 {\n    margin: 0 0 0.3em;\n    font-size: 2rem;\n}\n\n.author-profile p {\n    margin: 0 0 1.5em;\n    color: color-mod(var(--color-midgrey) l(-8%));\n}\n\n.author-profile-location {\n    margin: 0 0 1.5em;\n    font-weight: 700;\n}\n\n.author-profile-social-link {\n    display: block;\n    padding: 0 0 5px;\n    font-size: 1.3rem;\n    color: color-mod(var(--color-midgrey) l(-8%));\n    text-overflow: ellipsis;\n    overflow: hidden;\n    max-width: 100%;\n    white-space: nowrap;\n}\n\n.author-profile-social-link:hover {\n    color: var(--color-darkgrey);\n}\n\n@media (max-width: 900px) {\n    .author-template .posts .post-feed {\n        grid-template-columns: 1fr;\n    }\n}\n\n@media (max-width: 650px) {\n    .author-template .posts {\n        grid-template-columns: 1fr;\n        grid-gap: 0;\n    }\n    .author-template .posts .post-feed {\n        grid-column: 1 / auto;\n    }\n    .author-profile {\n        padding-right: 0;\n    }\n    .author-profile-content {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        text-align: center;\n    }\n}\n\n\n/* 8. Tag Template\n/* ---------------------------------------------------------- */\n\n.tag-template .post-card-large .post-card-image-link {\n    grid-column: 2 / span 2;\n    order: 2;\n}\n\n.tag-template .post-card-large .post-card-content {\n    order: 1;\n}\n\n\n/* 9. Error Template\n/* ---------------------------------------------------------- */\n\n.error-content {\n    padding: 14vw 4vw 6vw;\n}\n\n.error-message {\n    padding-bottom: 10vw;\n    text-align: center;\n}\n\n.error-code {\n    margin: 0;\n    color: var(--ghost-accent-color);\n    font-size: 12vw;\n    line-height: 1em;\n    letter-spacing: -5px;\n}\n\n.error-description {\n    margin: 0;\n    color: var(--color-midgrey);\n    font-size: 3.2rem;\n    line-height: 1.3em;\n    font-weight: 400;\n}\n\n.error-link {\n    display: inline-block;\n    margin-top: 5px;\n}\n\n@media (min-width: 940px) {\n    .error-content .post-card {\n        margin-bottom: 0;\n        padding-bottom: 0;\n        border-bottom: none;\n    }\n}\n\n@media (max-width: 800px) {\n    .error-content {\n        padding-top: 24vw;\n    }\n    .error-code {\n        font-size: 11.2rem;\n    }\n    .error-message {\n        padding-bottom: 16vw;\n    }\n    .error-description {\n        margin: 5px 0 0 0;\n        font-size: 1.8rem;\n    }\n}\n\n@media (max-width: 500px) {\n    .error-content {\n        padding-top: 28vw;\n    }\n    .error-message {\n        padding-bottom: 14vw;\n    }\n}\n\n\n/* 11. Site Footer\n/* ---------------------------------------------------------- */\n\n.site-footer {\n    position: relative;\n    margin: 40px 0 0 0;\n    padding: 40px 4vmin 140px;\n    color: #fff;\n    background: color-mod(var(--color-darkgrey) l(-5%));\n}\n\n.site-footer .inner {\n    display: grid;\n    grid-gap: 40px;\n    grid-template-columns: auto 1fr auto;\n    color: rgba(255,255,255,0.7);\n    font-size: 1.3rem;\n}\n\n.site-footer .copyright a {\n    color: #fff;\n    letter-spacing: -0.015em;\n    font-weight: 500;\n}\n\n.site-footer a {\n    color: rgba(255,255,255,0.7);\n}\n\n.site-footer a:hover {\n    color: rgba(255,255,255,1);\n    text-decoration: none;\n}\n\n.site-footer-nav ul {\n    display: flex;\n    justify-content: center;\n    flex-wrap: wrap;\n    margin: 0 0 20px;\n    padding: 0;\n    list-style: none;\n}\n\n.site-footer-nav li {\n    display: inline-flex;\n    align-items: center;\n    padding: 0;\n    margin: 0;\n    line-height: 2em;\n}\n\n.site-footer-nav a {\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    margin-left: 10px;\n}\n\n.site-footer-nav li:not(:first-child) a:before {\n    content: \"\";\n    display: block;\n    width: 2px;\n    height: 2px;\n    margin: 0 10px 0 0;\n    background: #fff;\n    border-radius: 100%;\n}\n\n@media (max-width: 800px) {\n    .site-footer .inner {\n        max-width: 500px;\n        grid-template-columns: 1fr;\n        grid-gap: 0;\n        text-align: center;\n    }\n    .site-footer .copyright,\n    .site-footer .copyright a {\n        color: #fff;\n        font-size: 1.5rem;\n    }\n}\n\n\n/* 12. Dark Mode\n/* ---------------------------------------------------------- */\n\n/* If you prefer a dark color scheme, you can enable dark mode\nby adding the following code to the Head section of \"Code Injection\"\nsettings inside: Ghost Admin > Settings > Advanced\n\n\n\nOr you can just edit default.hbs and add the .dark-mode class directly\nto the html tag on the very first line of the file.\n\n */\n\nhtml.dark-mode body {\n    color: rgba(255, 255, 255, 0.75);\n    background: var(--color-darkmode);\n}\n\nhtml.dark-mode img {\n    opacity: 0.9;\n}\n\nhtml.dark-mode kbd {\n    background: color-mod(var(--color-darkmode) l(+5%));\n}\n\nhtml.dark-mode .post-card,\nhtml.dark-mode .post-card:hover {\n    border-bottom-color: color-mod(var(--color-darkmode) l(+8%));\n}\n\nhtml.dark-mode .post-card-byline-content a {\n    color: rgba(255, 255, 255, 0.75);\n}\n\nhtml.dark-mode .post-card-byline-content a:hover {\n    color: #fff;\n}\n\nhtml.dark-mode .post-card-image {\n    background: var(--color-darkmode);\n}\n\nhtml.dark-mode .post-card-title {\n    color: rgba(255, 255, 255, 0.85);\n}\n\nhtml.dark-mode .post-card-excerpt {\n    color: color-mod(var(--color-midgrey) l(+10%));\n}\n\nhtml.dark-mode .post-full-content {\n    background: var(--color-darkmode);\n}\n\nhtml.dark-mode .article-title {\n    color: rgba(255, 255, 255, 0.9);\n}\n\nhtml.dark-mode .article-excerpt {\n    color: color-mod(var(--color-midgrey) l(+10%));\n}\n\nhtml.dark-mode .post-full-image {\n    background-color: color-mod(var(--color-darkmode) l(+8%));\n}\n\nhtml.dark-mode .article-byline {\n    border-top-color: color-mod(var(--color-darkmode) l(+15%));\n}\n\nhtml.dark-mode .article-byline-meta h4 a {\n    color: rgba(255, 255, 255, 0.75);\n}\n\nhtml.dark-mode .article-byline-meta h4 a:hover {\n    color: #fff;\n}\n\nhtml.dark-mode .no-image .author-social-link a {\n    color: rgba(255, 255, 255, 0.75);\n}\n\nhtml.dark-mode .gh-content > [id] {\n    color: rgba(255, 255, 255, 0.9);\n}\n\nhtml.dark-mode .gh-content pre {\n    background: color-mod(var(--color-darkgrey) l(-8%));\n}\n\nhtml.dark-mode .gh-content :not(pre) > code {\n    background: color-mod(var(--color-darkgrey) l(+6%));\n    border-color: color-mod(var(--color-darkmode) l(+8%));\n    color: var(--color-wash);\n}\n\nhtml.dark-mode .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {\n    color: #fff;\n}\n\nhtml.dark-mode .gh-content strong {\n    color: #fff;\n}\n\nhtml.dark-mode .gh-content em {\n    color: #fff;\n}\n\nhtml.dark-mode .gh-content code {\n    color: #fff;\n    background: #000;\n}\n\nhtml.dark-mode hr {\n    border-top-color: color-mod(var(--color-darkmode) l(+8%));\n}\n\nhtml.dark-mode .gh-content hr:after {\n    background: color-mod(var(--color-darkmode) l(+8%));\n    box-shadow: var(--color-darkmode) 0 0 0 5px;\n}\n\nhtml.dark-mode figcaption {\n    color: rgba(255, 255, 255, 0.6);\n}\n\nhtml.dark-mode .gh-content table td:first-child {\n    background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);\n}\n\nhtml.dark-mode .gh-content table td:last-child {\n    background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);\n}\n\nhtml.dark-mode .gh-content table th {\n    color: rgba(255, 255, 255, 0.85);\n    background-color: color-mod(var(--color-darkmode) l(+8%));\n}\n\nhtml.dark-mode .gh-content table th,\nhtml.dark-mode .gh-content table td {\n    border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;\n}\n\nhtml.dark-mode .gh-content input {\n    color: color-mod(var(--color-midgrey) l(-30%));\n}\n\nhtml.dark-mode .site-archive-header .no-image {\n    color: rgba(255, 255, 255, 0.9);\n    background: var(--color-darkmode);\n}\n\nhtml.dark-mode .kg-header-card.kg-style-dark {\n    background: color-mod(var(--color-darkgrey) l(-5%));\n}\n\nhtml.dark-mode .kg-header-card.kg-style-light {\n    background: color-mod(var(--color-darkgrey) l(+5%));\n}\n\nhtml.dark-mode .kg-header-card h2.kg-header-card-header,\nhtml.dark-mode .kg-header-card h3.kg-header-card-subheader {\n    color: #fff;\n}\n\n@media (prefers-color-scheme: dark) {\n    html.auto-color body {\n        color: rgba(255, 255, 255, 0.75);\n        background: var(--color-darkmode);\n    }\n\n    html.auto-color img {\n        opacity: 0.9;\n    }\n\n    html.auto-color kbd {\n        background: color-mod(var(--color-darkmode) l(+5%));\n    }\n\n    html.auto-color .post-card,\n    html.auto-color .post-card:hover {\n        border-bottom-color: color-mod(var(--color-darkmode) l(+8%));\n    }\n\n    html.auto-color .post-card-byline-content a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    html.auto-color .post-card-byline-content a:hover {\n        color: #fff;\n    }\n\n    html.auto-color .post-card-image {\n        background: var(--color-darkmode);\n    }\n\n    html.auto-color .post-card-title {\n        color: rgba(255, 255, 255, 0.85);\n    }\n\n    html.auto-color .post-card-excerpt {\n        color: color-mod(var(--color-midgrey) l(+10%));\n    }\n\n    html.auto-color .post-full-content {\n        background: var(--color-darkmode);\n    }\n\n    html.auto-color .article-title {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    html.auto-color .article-excerpt {\n        color: color-mod(var(--color-midgrey) l(+10%));\n    }\n\n    html.auto-color .post-full-image {\n        background-color: color-mod(var(--color-darkmode) l(+8%));\n    }\n\n    html.auto-color .article-byline {\n        border-top-color: color-mod(var(--color-darkmode) l(+15%));\n    }\n\n    html.auto-color .article-byline-meta h4 a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    html.auto-color .article-byline-meta h4 a:hover {\n        color: #fff;\n    }\n\n    html.auto-color .no-image .author-social-link a {\n        color: rgba(255, 255, 255, 0.75);\n    }\n\n    html.auto-color .gh-content > [id] {\n        color: rgba(255, 255, 255, 0.9);\n    }\n\n    html.auto-color .gh-content pre {\n        background: color-mod(var(--color-darkgrey) l(-8%));\n    }\n\n    html.auto-color .gh-content :not(pre) > code {\n        background: color-mod(var(--color-darkgrey) l(+6%));\n        border-color: color-mod(var(--color-darkmode) l(+8%));\n        color: var(--color-wash);\n    }\n\n    html.auto-color .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {\n        color: #fff;\n    }\n\n    html.auto-color .gh-content strong {\n        color: #fff;\n    }\n\n    html.auto-color .gh-content em {\n        color: #fff;\n    }\n\n    html.auto-color .gh-content code {\n        color: #fff;\n        background: #000;\n    }\n\n    html.auto-color hr {\n        border-top-color: color-mod(var(--color-darkmode) l(+8%));\n    }\n\n    html.auto-color .gh-content hr:after {\n        background: color-mod(var(--color-darkmode) l(+8%));\n        box-shadow: var(--color-darkmode) 0 0 0 5px;\n    }\n\n    html.auto-color figcaption {\n        color: rgba(255, 255, 255, 0.6);\n    }\n\n    html.auto-color .gh-content table td:first-child {\n        background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);\n    }\n\n    html.auto-color .gh-content table td:last-child {\n        background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);\n    }\n\n    html.auto-color .gh-content table th {\n        color: rgba(255, 255, 255, 0.85);\n        background-color: color-mod(var(--color-darkmode) l(+8%));\n    }\n\n    html.auto-color .gh-content table th,\n    html.auto-color .gh-content table td {\n        border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;\n    }\n\n    html.auto-color .gh-content input {\n        color: color-mod(var(--color-midgrey) l(-30%));\n    }\n\n    html.auto-color .site-archive-header .no-image {\n        color: rgba(255, 255, 255, 0.9);\n        background: var(--color-darkmode);\n    }\n\n    html.auto-color .kg-header-card.kg-style-dark {\n        background: color-mod(var(--color-darkgrey) l(-5%));\n    }\n\n    html.auto-color .kg-header-card.kg-style-light {\n        background: color-mod(var(--color-darkgrey) l(+5%));\n    }\n\n    html.auto-color .kg-header-card h2.kg-header-card-header,\n    html.auto-color .kg-header-card h3.kg-header-card-subheader {\n        color: #fff;\n    }\n}\n\n/*\n\nHey! You reached the end.\n\nHope you enjoyed this CSS file, if you have any suggestions\nfor improvements that might be useful for everyone who uses\nthis theme, you can find the open source repository for it\nhere: https://github.com/tryghost/casper\n\nOr, if you've just scrolled all the way to the bottom of the\nfile to add some of your own styles. Well, you've come to\nthe right place. Onward!\n\n */\n"]}
\ No newline at end of file
diff --git a/assets/css/global.css b/assets/css/global.css
index a207870..06b3323 100644
--- a/assets/css/global.css
+++ b/assets/css/global.css
@@ -1,22 +1,3 @@
-/* Variables
-/* ---------------------------------------------------------- */
-
-:root {
-    /* Colours */
-    --blue: #3eb0ef;
-    --green: #a4d037;
-    --purple: #ad26b4;
-    --yellow: #fecd35;
-    --red: #f05230;
-    --darkgrey: #15171A;
-    --midgrey: #738a94;
-    --lightgrey: #c5d2d9;
-    --whitegrey: #e5eff5;
-    --pink: #fa3a57;
-    --brown: #a3821a;
-    --darkmode: color-mod(var(--darkgrey) l(+2%));
-}
-
 /* Reset
 /* ---------------------------------------------------------- */
 
@@ -127,7 +108,9 @@ table {
     border-collapse: collapse;
 }
 img {
+    display: block;
     max-width: 100%;
+    height: auto;
 }
 html {
     box-sizing: border-box;
@@ -193,6 +176,20 @@ samp {
     font-family: monospace, monospace;
     font-size: 1em;
 }
+kbd {
+    padding: 3px 5px;
+    font-family: var(--font-mono);
+    font-size: 1.5rem;
+    background: #f6f8fa;
+    border: 1px solid rgba(124, 139, 154, 0.25);
+    border-radius: 6px;
+    box-shadow: inset 0 -1px 0 rgba(124, 139, 154, 0.25);
+}
+@media (max-width: 600px) {
+    kbd {
+        font-size: 1.3rem;
+    }
+}
 button,
 input,
 optgroup,
@@ -273,15 +270,12 @@ th {
    ========================================================================== */
 
 html {
-    overflow-x: hidden;
-    overflow-y: scroll;
     font-size: 62.5%;
 
     -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
 }
 body {
-    overflow-x: hidden;
-    color: color-mod(var(--midgrey) l(-30%));
+    color: #35373A;
     font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
     font-size: 1.6rem;
     line-height: 1.6em;
@@ -298,7 +292,7 @@ body {
 
 ::selection {
     text-shadow: none;
-    background: color-mod(var(--blue) lightness(+30%));
+    background: #daf2fd;
 }
 
 hr {
@@ -309,7 +303,7 @@ hr {
     padding: 0;
     height: 1px;
     border: 0;
-    border-top: 1px solid color-mod(var(--lightgrey) l(+10%));
+    border-top: 1px solid #f0f0f0;
 }
 
 audio,
@@ -331,11 +325,11 @@ textarea {
     resize: vertical;
 }
 
-p,
-ul,
-ol,
-dl,
-blockquote {
+::not(.gh-content) p,
+::not(.gh-content) ul,
+::not(.gh-content) ol,
+::not(.gh-content) dl,
+::not(.gh-content) blockquote {
     margin: 0 0 1.5em 0;
 }
 
@@ -366,16 +360,19 @@ ol {
 }
 
 li {
-    margin: 0.5em 0;
     padding-left: 0.3em;
     line-height: 1.6em;
 }
 
+li + li {
+    margin-top: 0.5em;
+}
+
 dt {
     float: left;
     margin: 0 20px 0 0;
     width: 120px;
-    color: var(--darkgrey);
+    color: #daf2fd;
     font-weight: 500;
     text-align: right;
 }
@@ -388,13 +385,7 @@ dd {
 blockquote {
     margin: 1.5em 0;
     padding: 0 1.6em 0 1.6em;
-    border-left: var(--whitegrey) 0.5em solid;
-}
-
-blockquote p {
-    margin: 0.8em 0;
-    font-size: 1.2em;
-    font-weight: 300;
+    border-left: #daf2fd;
 }
 
 blockquote small {
@@ -416,14 +407,10 @@ blockquote cite a {
 }
 
 a {
-    color: color-mod(var(--blue) l(-5%));
+    color: #15171A;
     text-decoration: none;
 }
 
-a:hover {
-    text-decoration: underline;
-}
-
 h1,
 h2,
 h3,
@@ -434,35 +421,38 @@ h6 {
     line-height: 1.15;
     font-weight: 600;
     text-rendering: optimizeLegibility;
+    letter-spacing: -0.01em;
 }
 
 h1 {
     margin: 0 0 0.5em 0;
-    font-size: 5.5rem;
-    font-weight: 600;
+    font-size: 4.8rem;
+    font-weight: 700;
+    letter-spacing: -0.015em;
 }
-@media (max-width: 500px) {
+@media (max-width: 600px) {
     h1 {
-        font-size: 2.2rem;
+        font-size: 2.8rem;
     }
 }
 
 h2 {
     margin: 1.5em 0 0.5em 0;
-    font-size: 2.2rem;
+    font-size: 2.8rem;
+    font-weight: 700;
 }
-@media (max-width: 500px) {
+@media (max-width: 600px) {
     h2 {
-        font-size: 1.8rem;
+        font-size: 2.3rem;
     }
 }
 
 h3 {
     margin: 1.5em 0 0.5em 0;
-    font-size: 1.8rem;
-    font-weight: 500;
+    font-size: 2.4rem;
+    font-weight: 600;
 }
-@media (max-width: 500px) {
+@media (max-width: 600px) {
     h3 {
         font-size: 1.7rem;
     }
@@ -470,18 +460,20 @@ h3 {
 
 h4 {
     margin: 1.5em 0 0.5em 0;
-    font-size: 1.6rem;
-    font-weight: 500;
+    font-size: 2rem;
+}
+@media (max-width: 600px) {
+    h4 {
+        font-size: 1.7rem;
+    }
 }
 
 h5 {
     margin: 1.5em 0 0.5em 0;
-    font-size: 1.4rem;
-    font-weight: 500;
+    font-size: 2rem;
 }
 
 h6 {
     margin: 1.5em 0 0.5em 0;
-    font-size: 1.4rem;
-    font-weight: 500;
+    font-size: 1.8rem;
 }
diff --git a/assets/css/screen.css b/assets/css/screen.css
index 2856b12..39e366a 100644
--- a/assets/css/screen.css
+++ b/assets/css/screen.css
@@ -15,140 +15,99 @@ production stylesheet in assets/built/screen.css
 7.  Single Post
   7.1. Post Byline
   7.2. Members Subscribe Form
-  7.3. Comments
   7.4. Related Posts
   7.5. Koenig Styles
 8.  Author Template
 9.  Error Template
-10. Subscribe Overlay
 11. Site Footer
 12. Dark Mode
 
 */
 
-
 /* 1. Global - Set up the things
 /* ---------------------------------------------------------- */
+
+/* Import CSS reset and base styles */
 @import "global.css";
 
-body {
-    background: #fff;
-}
+:root {
 
-.img {
-    display: block;
-    width: 100%;
-    height: 100%;
-    background-position: center center;
-    background-size: cover;
-    border-radius: 100%;
-}
+    /* Colours */
+    --color-green: #a4d037;
+    --color-yellow: #fecd35;
+    --color-red: #f05230;
+    --color-darkgrey: #15171A;
+    --color-midgrey: #738a94;
+    --color-lightgrey: #c5d2d9;
+    --color-wash: #e5eff5;
+    --color-darkmode: #151719;
+
+    /*
+    An accent color is also set by Ghost itself in
+    Ghost Admin > Settings > Brand
+
+    --ghost-accent-color: {value};
+
+    You can use this variable throughout your styles
+     */
+
+    /* Fonts */
+    --font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
+    --font-serif: Georgia, Times, serif;
+    --font-mono: Menlo, Courier, monospace;
 
-.hidden {
-    visibility: hidden;
-    position: absolute;
-    text-indent: -9999px;
 }
 
 
 /* 2. Layout - Page building blocks
 /* ---------------------------------------------------------- */
 
-.site-wrapper {
+.viewport {
     display: flex;
     flex-direction: column;
     min-height: 100vh;
 }
 
-.site-main {
-    z-index: 100;
+.site-content {
     flex-grow: 1;
 }
 
 /* Full width page blocks */
 .outer {
     position: relative;
-    padding: 0 5vw;
+    padding: 0 4vmin;
 }
 
 /* Centered content container blocks */
 .inner {
     margin: 0 auto;
-    max-width: 1040px;
+    max-width: 1200px;
     width: 100%;
 }
 
-/* Usage:
-
-
-
- Centered content -
-
- -*/ - -/* 3. Special Template Styles -/* ---------------------------------------------------------- */ - -@media (min-width: 900px) { - .home-template .post-feed, - .tag-template .post-feed, - .author-template .post-feed { - padding: 40px 0 5vw; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - } - - .home-template .site-nav { - position: relative; - } -} - /* 4. Site Header /* ---------------------------------------------------------- */ -.site-header-background { +.site-header { position: relative; - margin-top: 64px; - padding-bottom: 12px; color: #fff; - background: color-mod(var(--darkgrey) l(-5%)) no-repeat center center; - background-size: cover; + background: var(--ghost-accent-color); } -.site-header-background:before { - content: ""; +.site-header-cover { position: absolute; top: 0; right: 0; bottom: 0; left: 0; - z-index: 10; - display: block; - background: rgba(0,0,0,0.18); -} - -.site-header-background:after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: auto; - left: 0; - z-index: 10; - display: block; - height: 140px; - background: linear-gradient(rgba(0,0,0,0.15),rgba(0,0,0,0)); -} - -.site-header-background.no-image:before, -.site-header-background.no-image:after { - display: none; + width: 100%; + height: 100%; + object-fit: cover; } .site-header-content { + position: relative; z-index: 100; display: flex; flex-direction: column; @@ -157,462 +116,434 @@ body { padding: 6vw 3vw; min-height: 200px; max-height: 340px; + text-align: center; } .site-title { z-index: 10; - margin: 0 0 0 -2px; + margin: 0 0 0.15em; padding: 0; - font-size: 5.0rem; - line-height: 1em; - font-weight: 600; } .site-logo { max-height: 55px; } -.site-description { +.site-header-content p { z-index: 10; - margin: 0; - padding: 5px 0; - font-size: 2.1rem; - line-height: 1.4em; - font-weight: 400; + max-width: 600px; + margin: 0 auto; + line-height: 1.2em; opacity: 0.8; } +@media (max-width: 600px) { + .site-header-content p { + max-width: 80vmin; + font-size: 1.8rem; + } +} + /* 4.1 Home header /* ---------------------------------------------------------- */ .site-home-header { - z-index: 1000; -} - -.site-home-header .site-header-background { - margin-top: 0; -} - -.site-home-header .site-header-content { - padding: 5vw 3vw 6vw; -} - -.site-home-header .site-title { - font-size: 5.5rem; - text-align: center; -} - -.site-home-header .site-description { - font-size: 2.2rem; - font-weight: 300; - text-align: center; -} - - -/* 4.2 Archive header (tag and author post lists) -/* ---------------------------------------------------------- */ - -.site-archive-header .site-header-content { position: relative; - align-items: stretch; - padding: 12vw 0 20px; - min-height: 200px; - max-height: 600px; + z-index: 1000; + overflow: hidden; } -.site-archive-header .no-image { - padding-top: 0; - padding-bottom: 0; - color: var(--darkgrey); - background: #fff; - opacity: 1.0; +.site-header-content { + padding: 18vmin 4vmin; + font-size: 2.5rem; + font-weight: 400; + color: #fff; + background: var(--ghost-accent-color); } -.site-archive-header .no-image .site-description { - color: var(--midgrey); - opacity: 1.0; -} - - -.site-archive-header .no-image .site-header-content { - padding: 5vw 0 10px; - border-bottom: 1px solid color-mod(var(--lightgrey) l(+12%)); -} - - -/* Special header styles for smaller screens */ - -@media (max-width: 900px) { - .site-header-content { - padding-bottom: 9vw; - } -} - -@media (max-width: 500px) { - .site-home-header .site-title { - font-size: 4.2rem; - } - - .site-home-header .site-description { - font-size: 1.8rem; - } - - .site-archive-header .site-header-content { - flex-direction: column; - align-items: center; - min-height: unset; - } - - .site-archive-header .site-title { - font-size: 4.2rem; - text-align: center; - } - - .site-archive-header .no-image .site-header-content { - padding: 12vw 0 20px; - } +.site-header-content.large { + padding-top: 28vmin; + padding-bottom: 28vmin; } /* 5. Site Navigation /* ---------------------------------------------------------- */ -.site-nav-main { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1000; - background: color-mod(var(--darkgrey) l(-5%)); -} - -.site-nav { - position: relative; - z-index: 100; - display: flex; - justify-content: space-between; - align-items: flex-start; - overflow: hidden; - height: 64px; - font-size: 1.3rem; -} - -.site-nav-left-wrapper { - position: relative; - flex: 1 0 auto; - display: flex; -} - -.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after, -.site-nav-main .site-nav-left-wrapper:after { - content: ""; - position: absolute; - top: 0; - z-index: 1000; - width: 40px; - height: 100%; -} - -.site-header-background:not(.responsive-header-img) .site-nav-left-wrapper:after, -.site-nav-main .site-nav-left-wrapper:after { - right: 0; - background: linear-gradient(to right, color-mod(var(--darkgrey) l(-5%) a(0)) 0%,color-mod(var(--darkgrey) l(-5%)) 100%); -} - -.site-nav-left { - flex: 1 0 auto; - display: flex; - align-items: center; - overflow-x: auto; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - margin-right: 10px; - padding: 10px 0 80px; - font-weight: 500; - letter-spacing: 0.2px; - text-transform: uppercase; - white-space: nowrap; - - -ms-overflow-scrolling: touch; -} - -.site-nav-left .nav li:last-of-type { - padding-right: 20px; -} - -/* Site Nav Hack Explanation (above): - -What's happening above is .site-nav-left is set to overflow-x and allow sideways scrolling, so that when there isn't enough space for all nav items (either due to lots of nav items, or a small viewport), you can still scroll side-to-side to reach them. Also, there is a small gradient on the left and right side covering the menu so that the menu goes offscreen smoothly. - -The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px of padding-bottom and a 40px fixed height parent (.site-nav) hides that entirely. Slightly hacky code. But nice clean end-result. - -*/ - -.site-nav-logo { - position: relative; - z-index: 100; - flex-shrink: 0; - display: inline-block; - margin-right: 32px; - padding: 12px 0; +.gh-head { + padding: 1vmin 4vmin; + font-size: 1.6rem; + line-height: 1.3em; color: #fff; - font-size: 1.7rem; - line-height: 1.8rem; - font-weight: bold; - letter-spacing: -0.5px; - text-transform: none; + background: var(--ghost-accent-color); } -.site-nav-logo:hover { +.gh-head a { + color: inherit; text-decoration: none; } -.site-nav-logo img { - display: block; - width: auto; - height: 21px; +.gh-head-inner { + display: grid; + grid-gap: 2.5vmin; + grid-template-columns: auto auto 1fr; + grid-auto-flow: row dense; } -.site-home-header .site-nav-logo { - display: none; -} -.site-nav-content { - position: relative; - align-self: flex-start; -} +/* Brand +/* ---------------------------------------------------------- */ -.nav { - position: absolute; - z-index: 1000; +.gh-head-brand { display: flex; - margin: 0 0 0 -12px; - padding: 0; - list-style: none; - transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1); + align-items: center; + height: 40px; + max-width: 200px; + text-align: center; + word-break: break-all; } -.nav li { +.gh-head-logo { display: block; + padding: 10px 0; + font-weight: 700; + font-size: 2rem; + line-height: 1.2em; + letter-spacing: -0.02em; +} + +.gh-head-logo img { + max-height: 26px; +} + + +/* Primary Navigation +/* ---------------------------------------------------------- */ + +.gh-head-menu { + display: flex; + align-items: center; + font-weight: 500; +} + +.gh-head-menu .nav { + display: inline-flex; + flex-wrap: wrap; + align-items: center; + list-style: none; margin: 0; padding: 0; } -.nav li a { - position: relative; - display: block; - padding: 12px 12px; - color: #fff; - opacity: 0.8; - transition: opacity 0.35s ease-in-out; +.gh-head-menu .nav li { + margin: 0 2.5vmin 0 0; + padding: 0; } -.nav li a:hover { - text-decoration: none; +.gh-head-menu .nav a { + display: inline-block; + padding: 5px 0; + opacity: 0.8 +} + +.gh-head-menu .nav a:hover { opacity: 1; } -.nav li a:before { - content: ""; - position: absolute; - right: 100%; - bottom: 8px; - left: 12px; - height: 1px; - background: #fff; - opacity: 0.25; - transition: all 0.35s ease-in-out; -} -.nav li a:hover:before { - right: 12px; - opacity: 0.5; -} +/* Secondary Navigation +/* ---------------------------------------------------------- */ -.nav-post-title-active .nav { - visibility: hidden; - opacity: 0; - transform: translateY(-175%); -} - -.nav-post-title { - visibility: hidden; - position: absolute; - top: 9px; - color: #fff; - font-size: 1.7rem; - font-weight: 400; - text-transform: none; - opacity: 0; - transition: all 1.0s cubic-bezier(0.19, 1, 0.22, 1); - transform: translateY(175%); -} - -.nav-post-title.dash { - left: -25px; -} - -.nav-post-title.dash:before { - content: "– "; - opacity: 0.5; -} - -.nav-post-title-active .nav-post-title { - visibility: visible; - opacity: 1; - transform: translateY(0); -} - -.site-nav-right { - flex: 0 1 auto; +.gh-head-actions { display: flex; justify-content: flex-end; align-items: center; - padding: 10px 0; - height: 64px; + list-style: none; + text-align: right; } -.site-nav-right .nav { - position: relative; - margin: 0; -} - -.site-nav-right .nav a { - white-space: nowrap; -} - -.site-nav-right .nav a:before { - display: none; -} - -.site-nav-right .nav li:last-of-type a { - margin-right: -12px; -} - -.social-links { - flex-shrink: 0; - display: flex; +.gh-head-actions-list { + display: inline-flex; + flex-wrap: wrap; + justify-content: flex-end; align-items: center; } -.social-link { +.gh-head-actions-list a:not([class]) { display: inline-block; - margin: 0; - padding: 10px; - opacity: 0.8; + margin: 0 0 0 1.5vmin; + padding: 5px 0; } -.social-link:hover { - opacity: 1.0; +.gh-social { + margin: 0 1.5vmin 0 0; } -.social-link svg { - height: 1.8rem; +.gh-social a { + opacity: 0.8 +} + +.gh-social a + a { + margin-left: 0.8rem; +} + +.gh-social a:hover { + opacity: 1; +} + +.gh-social svg { + height: 22px; + width: 22px; fill: #fff; } -.social-link-fb svg { - height: 1.6rem; +.gh-social-facebook svg { + height: 20px; + width: 20px; } -.social-link-wb svg { - height: 1.6rem; -} - -.social-link-wb svg path { - stroke: #fff; -} - -.social-link-rss svg { - height: 1.9rem; -} - -.subscribe-button { +a.gh-head-button { display: block; - margin: 0 0 0 10px; - padding: 4px 10px; - border: #fff 1px solid; - color: #fff; + padding: 8px 15px; + color: var(--button-text-color, var(--color-darkgrey)); + font-weight: 500; + letter-spacing: -0.015em; + font-size: 1.5rem; line-height: 1em; - border-radius: 10px; - opacity: 0.8; + background: var(--button-bg-color, #fff); + border-radius: 30px; } -.subscribe-button:hover { - text-decoration: none; - opacity: 1; + +/* Mobile Menu Trigger +/* ---------------------------------------------------------- */ + +.gh-burger { + position: relative; + display: none; + cursor: pointer; } -.site-nav-right .nav + .subscribe-button { - margin-left: 24px; +.gh-burger-box { + position: relative; + display: flex; + align-items: center; + justify-content: center; + width: 33px; + height: 33px; } -.rss-button { - padding: 10px 8px; - opacity: 0.8; +.gh-burger-inner { + width: 100%; + height: 100%; } -.rss-button:hover { - opacity: 1; +.gh-burger-box::before { + position: absolute; + display: block; + top: 0; + left: 0; + bottom: 0; + margin: auto; + content: ''; + width: 100%; + height: 1px; + background: currentcolor; + transition: transform 300ms cubic-bezier(.2,.6,.3,1), width 300ms cubic-bezier(.2,.6,.3,1); + will-change: transform, width; } -.rss-button svg { - margin-bottom: 1px; - height: 2.1rem; - fill: #fff; +.gh-burger-inner::before, +.gh-burger-inner::after { + position: absolute; + display: block; + top: 0; + left: 0; + bottom: 0; + margin: auto; + content: ''; + width: 100%; + height: 1px; + background: currentcolor; + transition: transform 250ms cubic-bezier(.2,.7,.3,1), width 250ms cubic-bezier(.2,.7,.3,1); + will-change: transform, width; } -/* Special behaviors for home navigation */ - -.home-template .site-nav-main { - z-index: 100; +.gh-burger-inner::before { + transform: translatey(-6px); +} +.gh-burger-inner::after { + transform: translatey(6px); } -.home-template .site-nav-main .site-nav { - opacity: 0; - transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0s; +body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::before { + transform: translatey(-8px); +} +body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after { + transform: translatey(8px); } -.home-template .site-nav-main .fixed-nav-active { - opacity: 1; - transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.05s; +.gh-head-open .gh-burger-box::before { + width: 0; + transform: translatex(19px); + transition: transform 200ms cubic-bezier(.2,.7,.3,1), width 200ms cubic-bezier(.2,.7,.3,1); } -@media (max-width: 700px) { - .site-home-header .site-nav { - margin-left: -5vw; +.gh-head-open .gh-burger-inner::before { + width: 26px; + transform: translatex(6px) rotate(135deg); +} + +.gh-head-open .gh-burger-inner::after { + width: 26px; + transform: translatex(6px) rotate(-135deg); +} + + +/* Mobile Menu +/* ---------------------------------------------------------- */ +/* IDs needed to ensure sufficient specificity */ + +@media (max-width: 900px) { + .gh-burger { + display: inline-block; } - - .site-nav-main { - padding-right: 0; - padding-left: 0; + #gh-head { + transition: all 0.4s ease-out; + overflow: hidden; } - - .site-nav-left { - margin-right: 0; - padding-left: 5vw; + #gh-head .gh-head-inner { + height: 100%; + grid-template-columns: 1fr; } - - .site-nav-right { + #gh-head .gh-head-brand { + position: relative; + z-index: 10; + grid-column-start: auto; + max-width: none; + display: flex; + align-items: center; + justify-content: space-between; + user-select: none; + } + .home-template #gh-head.has-cover .gh-head-brand { + justify-content: flex-end; + } + #gh-head .gh-head-menu { + align-self: center; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + margin: 0 0 10vh 0; + font-weight: 300; + font-size: 3.6rem; + line-height: 1.1em; + } + #gh-head .gh-head-menu .nav li { + margin: 5px 0; + } + #gh-head .gh-head-menu .nav a { + padding: 8px 0; + } + #gh-head .gh-head-menu .nav { + display: flex; + flex-direction: column; + align-items: center; + } + #gh-head .gh-head-actions { + padding: 20px 0; + justify-content: center; + text-align: left; + } + #gh-head .gh-head-actions a { + margin: 0 10px; + } + /* Hide collapsed content */ + #gh-head .gh-head-actions, + #gh-head .gh-head-menu { display: none; } + /* Open the menu */ + .gh-head-open { + overflow: hidden; + height: 100vh; + } + .gh-head-open #gh-head { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 3999999; + overflow-y: scroll; + } + .gh-head-open #gh-head .gh-head-inner { + grid-template-rows: auto 1fr auto; + } + .gh-head-open #gh-head .gh-head-actions, + .gh-head-open #gh-head .gh-head-menu { + display: flex; + } +} + +@media (max-width: 600px) { + #gh-head .gh-head-menu { + font-size: 6vmin; + } +} + +.home-template .gh-head.has-cover { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 2000; +} + +.home-template .gh-head.has-cover { + background: transparent; +} + +.home-template.gh-head-open .gh-head { + background: var(--ghost-accent-color); +} + +.home-template .gh-head.has-cover .gh-head-logo { + display: none; +} +.home-template .gh-head.has-cover .gh-head-menu { + margin-left: -2.5vmin; } /* 6. Post Feed /* ---------------------------------------------------------- */ -.posts { - overflow-x: hidden; -} - .post-feed { position: relative; - display: flex; - flex-wrap: wrap; - margin: 0 -20px; - padding: 50px 0 0; - background: #fff; + display: grid; + grid-gap: 4vmin; + grid-template-columns: 1fr 1fr 1fr; + padding: 4vmin 0; +} + +.post-feed.list { + row-gap: 6vmin; + max-width: 940px; + margin: 2vmin auto 0; +} + +@media (max-width: 1000px) { + .post-feed { + grid-template-columns: 1fr 1fr; + } +} +@media (max-width: 700px) { + .post-feed { + grid-template-columns: 1fr; + grid-gap: 40px; + } } .post-card { @@ -620,12 +551,15 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o flex: 1 1 301px; display: flex; flex-direction: column; - overflow: hidden; - margin: 0 0 40px; - padding: 0 20px 40px; min-height: 220px; - border-bottom: 1px solid color-mod(var(--lightgrey) l(+12%)); background-size: cover; + word-break: break-word; +} + +@media (max-width: 700px) { + .post-card { + min-height: auto; + } } .post-card-image-link { @@ -638,7 +572,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .post-card-image { width: 100%; height: 200px; - background: var(--lightgrey) no-repeat center center; + background: var(--color-lightgrey) no-repeat center center; object-fit: cover; } @@ -646,7 +580,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .post-card-content-link { position: relative; display: block; - color: var(--darkgrey); + color: var(--color-darkgrey); } .post-card-content-link:hover { @@ -654,7 +588,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o } .post-card-header { - margin: 15px 0 0; + margin: 20px 0 0; } .post-feed .no-image .post-card-content-link { @@ -667,7 +601,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .post-card-primary-tag { margin: 0 0 0.2em; - color: var(--blue); + color: var(--ghost-accent-color); font-size: 1.2rem; font-weight: 500; letter-spacing: 0.2px; @@ -676,7 +610,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .post-card-title { margin: 0 0 0.4em; - line-height: 1.15em; + font-size: 2.4rem; transition: color 0.2s ease-in-out; } @@ -684,6 +618,10 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o margin-top: 0; } +.has-serif-title .post-card-title { + font-family: var(--font-serif); +} + .post-card-content { flex-grow: 1; display: flex; @@ -692,17 +630,26 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o .post-card-excerpt { max-width: 56em; - color: var(--midgrey); - font-family: Georgia, serif; + color: color-mod(var(--color-midgrey) l(-8%)); + font-family: var(--font-serif); +} + +.has-sans-body .post-card-excerpt { + font-family: var(--font-sans-serif); } .post-card-excerpt p { margin-bottom: 1em; + display: -webkit-box; + overflow-y: hidden; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + word-break: break-word; } .post-card-meta { display: flex; - align-items: flex-start; + align-items: center; padding: 0; } @@ -711,7 +658,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o display: block; width: 100%; height: 100%; - background: color-mod(var(--lightgrey) l(+10%)); + background: color-mod(var(--color-lightgrey) l(+10%)); border-radius: 100%; object-fit: cover; @@ -741,53 +688,21 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o display: block; overflow: hidden; margin: 0 0 0 -6px; - width: 34px; - height: 34px; - border: #fff 2px solid; + width: 36px; + height: 36px; border-radius: 100%; -} - -.author-name-tooltip { - position: absolute; - bottom: 105%; - z-index: 999; - display: block; - padding: 2px 8px; - color: white; - font-size: 1.2rem; - letter-spacing: 0.2px; - white-space: nowrap; - background: var(--darkgrey); - border-radius: 3px; - box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px; - opacity: 0; - transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99); - transform: translateY(6px); - pointer-events: none; -} - -.author-list-item:hover .author-name-tooltip { - opacity: 1.0; - transform: translateY(0px); -} - -@media (max-width: 700px) { - .author-name-tooltip { - display: none; - } + box-shadow: 0 0 0 1px rgba(255,255,255,0.2); } .post-card-byline-content { flex: 1 1 50%; display: flex; flex-direction: column; - margin: 2px 0 0 6px; - color: color-mod(var(--midgrey) l(+10%)); - font-size: 1.2rem; - line-height: 1.4em; + margin: 0 0 0 8px; + color: color-mod(var(--color-midgrey) l(+10%)); + font-size: 1.4rem; + line-height: 1.2em; font-weight: 400; - letter-spacing: 0.2px; - text-transform: uppercase; } .post-card-byline-content span { @@ -795,17 +710,18 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o } .post-card-byline-content a { - color: color-mod(var(--darkgrey) l(+20%)); + color: color-mod(var(--color-darkgrey) l(+15%)); font-weight: 600; } .post-card-byline-date { - font-size: 1.2rem; + font-size: 1.3rem; + line-height: 1.5em; } .post-card-byline-date .bull { display: inline-block; - margin: 0 4px; + margin: 0 2px; opacity: 0.6; } @@ -813,7 +729,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o display: flex; flex-direction: column; margin-left: 5px; - color: color-mod(var(--midgrey) l(-10%)); + color: color-mod(var(--color-midgrey) l(-10%)); font-size: 1.3rem; line-height: 1.4em; font-weight: 500; @@ -840,17 +756,38 @@ make sure this only happens on large viewports / desktop-ish devices. */ -@media (min-width: 795px) { - .post-card-large { - flex: 1 1 100%; - flex-direction: row; - padding-bottom: 40px; - min-height: 280px; +@media (min-width: 701px) { + .post-feed.list .post-card-large { + grid-column: 1 / span 3; + display: grid; + grid-gap: 4vmin; + grid-template-columns: 3fr 5fr; + min-height: auto; border-top: 0; } - .post-card-large:hover { - border-bottom-color: color-mod(var(--lightgrey) l(+10%)); + .post-feed.list .post-card-large.no-image { + grid-template-columns: 1fr; + } + + .post-feed.list .post-card-large:not(.no-image) .post-card-header { + margin-top: 0; + } + + .post-feed.list .post-card-large .post-card-content { + justify-content: flex-start; + margin-top: -6px; + } +} + +@media (min-width: 1001px) { + .post-card-large { + grid-column: 1 / span 3; + display: grid; + grid-gap: 4vmin; + grid-template-columns: 1fr 1fr 1fr; + min-height: 280px; + border-top: 0; } .post-card-large:not(.no-image) .post-card-header { @@ -859,11 +796,23 @@ make sure this only happens on large viewports / desktop-ish devices. .post-card-large .post-card-image-link { position: relative; - flex: 1 1 auto; + grid-column: 1 / span 2; margin-bottom: 0; min-height: 380px; } + .post-feed.list .post-card-large .post-card-image-link { + grid-column: 1 / span 1; + height: max-content; + min-height: auto; + } + + .post-feed.list .post-card-large .post-card-image-link::after { + content: ""; + display: block; + padding-bottom: 60%; + } + .post-card-large .post-card-image { position: absolute; width: 100%; @@ -871,7 +820,6 @@ make sure this only happens on large viewports / desktop-ish devices. } .post-card-large .post-card-content { - flex: 0 1 361px; justify-content: center; } @@ -880,39 +828,18 @@ make sure this only happens on large viewports / desktop-ish devices. font-size: 3.2rem; } - .post-card-large .post-card-content-link { - padding: 0 0 0 40px; - } - - .post-card-large .post-card-meta { - padding: 0 0 0 40px; + .post-feed.list .post-card-large .post-card-title { + font-size: 2.4rem; } .post-card-large .post-card-excerpt p { - margin-bottom: 1.5em; - font-size: 1.8rem; - line-height: 1.5em; + font-size: 1.7rem; + line-height: 1.55em; + -webkit-line-clamp: 8; } } -/* Adjust some margins for smaller screens */ -@media (max-width: 1170px) { - .post-card { - margin-bottom: 5vw; - } -} - -@media (max-width: 650px) { - .post-feed { - padding-top: 5vw; - } - - .post-card { - margin-bottom: 5vw; - } -} - @media (max-width: 500px) { .post-card-title { font-size: 1.9rem; @@ -927,453 +854,409 @@ make sure this only happens on large viewports / desktop-ish devices. /* 7. Single Post /* ---------------------------------------------------------- */ -.post-template .site-main, -.page-template .site-main { - margin-top: 64px; - padding-bottom: 4vw; - background: #fff; +.article { + padding: 8vmin 0; + word-break: break-word; } -.post-full-header { - position: relative; - margin: 0 auto; - padding: 70px 170px 50px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; +.article-header { + padding: 0 0 6vmin 0; } -.post-full-tags { +.article-tag { display: flex; justify-content: flex-start; align-items: center; - color: var(--midgrey); + margin: 0 0 0.5rem; + color: var(--color-midgrey); font-size: 1.3rem; line-height: 1.4em; + letter-spacing: 0.02em; font-weight: 600; text-transform: uppercase; } -.post-full-meta-date { - color: var(--midgrey); - font-size: 1.2rem; - font-weight: 400; +.article-tag a { + color: var(--ghost-accent-color); } -@media (max-width: 1170px) { - .post-full-header { - padding: 60px 11vw 50px; - } +.article-title { + color: color-mod(var(--color-darkgrey) l(-5%)); } -@media (max-width: 800px) { - .post-full-header { - padding-right: 5vw; - padding-left: 5vw; - } +.has-serif-title .article-title { + font-family: var(--font-serif); } -@media (max-width: 500px) { - .post-full-header { - padding: 20px 0 35px; - } -} - -.post-full-title { - margin: 0 0 0.2em; - color: color-mod(var(--darkgrey) l(-5%)); -} - -.post-full-custom-excerpt { - margin: 20px 0 0; - color: var(--midgrey); - font-family: Georgia, serif; - font-size: 2.3rem; +.article-excerpt { + margin: 0 0 1rem; + font-size: 2rem; line-height: 1.4em; - font-weight: 300; + opacity: 0.6; } -.date-divider { - display: inline-block; - margin: 0 6px 1px; - font-weight: 300; -} - -.post-full-image { - display: flex; - flex-direction: column; - align-items: center; - overflow: hidden; - margin: 25px 0 50px; - background: color-mod(var(--lightgrey) l(+10%)); - border-radius: 3px; -} - -.post-full-image img { - max-width: 1040px; +.gh-canvas .article-image { + grid-column: wide-start / wide-end; width: 100%; - height: auto; + margin: 6vmin 0 0; } -.post-full-content { - position: relative; - margin: 0 auto; - padding: 0 170px 6vw; - min-height: 230px; - font-family: Georgia, serif; - font-size: 2.0rem; - line-height: 1.6em; - background: #fff; +.image-full .article-image { + grid-column: full-start / full-end; } -@media (max-width: 1170px) { - .post-full-content { - padding: 0 11vw; - } +.image-small .article-image { + grid-column: main-start / main-end; } -@media (max-width: 800px) { - .post-full-content { - padding: 0 5vw; + +.gh-canvas .article-image img { + display: block; + margin-left: auto; + margin-right: auto; + width: 100%; +} + +@media (max-width: 600px) { + .article-excerpt { font-size: 1.8rem; } } -@media (max-width: 500px) { - .post-full-custom-excerpt { - font-size: 1.9rem; - line-height: 1.5em; - } + +/* -------- */ + +/* Content grid +/* ---------------------------------------------------------- */ + +/* Canvas creates a multi-column, centered grid which the post +is laid out on top of. Canvas just defines the grid, we don't +use it for applying any other styles. */ + +.gh-canvas { + display: grid; + grid-template-columns: + [full-start] + minmax(4vmin, auto) + [wide-start] + minmax(auto, 240px) + [main-start] + min(720px, calc(100% - 8vw)) + [main-end] + minmax(auto, 240px) + [wide-end] + minmax(4vmin, auto) + [full-end] + ; } -.no-image .post-full-content { - padding-top: 0; +.gh-canvas > * { + grid-column: main-start / main-end; } -.no-image .post-full-content:before, -.no-image .post-full-content:after { - display: none; +.kg-width-wide { + grid-column: wide-start / wide-end; } -.post-full-content h1, -.post-full-content h2, -.post-full-content h3, -.post-full-content h4, -.post-full-content h5, -.post-full-content h6, -.post-full-content p, -.post-full-content ul, -.post-full-content ol, -.post-full-content dl, -.post-full-content pre, -.post-full-content blockquote, -.post-full-comments, -.footnotes { - margin: 0 0 1.5em 0; - min-width: 100%; -} -@media (max-width: 500px) { - .post-full-content p, - .post-full-content ul, - .post-full-content ol, - .post-full-content dl, - .post-full-content pre, - .post-full-comments, - .footnotes { - margin-bottom: 1.28em; - } +.kg-width-full { + grid-column: full-start / full-end; } -.post-full-content li { - word-break: break-word; -} - -.post-full-content li p { - margin: 0; -} - -.post-full-content a { - color: var(--darkgrey); - word-break: break-word; - box-shadow: var(--darkgrey) 0 -1px 0 inset; - transition: all 0.2s ease-in-out; -} - -.post-full-content a:hover { - color: var(--blue); - text-decoration: none; - box-shadow: var(--blue) 0 -1px 0 inset; -} - -.post-full-content strong, -.post-full-content em { - color: color-mod(var(--darkgrey) l(-5%)); -} - -.post-full-content small { - display: inline-block; - line-height: 1.6em; -} - -.post-full-content li:first-child { - margin-top: 0; -} - -.post-full-content img, -.post-full-content video { - display: block; - margin: 1.5em auto; - max-width: 1040px; - height: auto; -} -@media (max-width: 1040px) { - .post-full-content img, - .post-full-content video { - width: 100%; - } +.kg-width-full img { + width: 100%; } -/* Full bleed images (#full) -Super neat trick courtesy of @JoelDrapper +/* Content +/* ---------------------------------------------------------- */ -Usage (In Ghost edtior): +/* Content refers to styling all page and post content that is +created within the Ghost editor. The main content handles +headings, text, images and lists. We deal with cards lower down. */ -![img](/some/image.jpg#full) - -*/ -.post-full-content img[src$="#full"] { - max-width: none; - width: 100vw; -} - - -/* Image captions - -Usage (In Ghost editor): - -![img](/some/image.jpg) -Your image caption - -*/ -.post-full-content img + br + small { - display: block; - margin-top: -3em; - margin-bottom: 1.5em; - text-align: center; -} - - -/* Override third party iframe styles */ -.post-full-content iframe { - margin: 0 auto !important; -} - -.post-full-content blockquote { - margin: 0 0 1.5em; - padding: 0 1.5em; - border-left: color-mod(var(--blue)) 3px solid; -} -@media (max-width: 500px) { - .post-full-content blockquote { - padding: 0 1.3em; - } -} - -.post-full-content blockquote p { - margin: 0 0 1em 0; - color: inherit; - font-size: inherit; - line-height: inherit; - font-style: italic; -} - -.post-full-content blockquote p:last-child { +/* Default vertical spacing */ +.gh-content > * + * { + margin-top: 4vmin; margin-bottom: 0; } -.post-full-content code { - padding: 0 5px 2px; - font-size: 0.8em; - line-height: 1em; - font-weight: 400!important; - background: var(--whitegrey); - border-radius: 3px; +/* [id] represents all headings h1-h6, reset all margins */ +.gh-content > [id] { + margin: 0; + color: var(--color-darkgrey); } -.post-full-content p code { - word-break: break-all; +.has-serif-title .gh-content > [id] { + font-family: var(--font-serif); } -.post-full-content pre { - overflow-x: auto; - margin: 1.5em 0 3em; - padding: 20px; - max-width: 100%; - border: color-mod(var(--darkgrey) l(-10%)) 1px solid; - color: var(--whitegrey); - font-size: 1.4rem; - line-height: 1.5em; - background: color-mod(var(--darkgrey) l(-3%)); - border-radius: 5px; +/* Add back a top margin to all headings, unless a heading +is the very first element in the post content */ +.gh-content > [id]:not(:first-child) { + margin: 2em 0 0; } -.post-full-content pre ::selection { - color: color-mod(var(--midgrey) l(-25%)); +/* Add a small margin between a heading and anything after it */ +.gh-content > [id] + * { + margin-top: 1.5rem !important; } -.post-full-content pre code { +/* A larger margin before/after HRs and blockquotes */ +.gh-content > hr, +.gh-content > blockquote { + position: relative; + margin-top: 6vmin; +} +.gh-content > hr + *, +.gh-content > blockquote + * { + margin-top: 6vmin !important; +} + +/* Now the content typography styles */ +.gh-content a { + color: var(--ghost-accent-color); + text-decoration: underline; + word-break: break-word; +} + +.gh-content > blockquote:not([class]), +.gh-content > ol, +.gh-content > ul, +.gh-content > dl, +.gh-content > p { + font-family: var(--font-serif); + font-weight: 400; + font-size: 2.1rem; + line-height: 1.6em; +} + +.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 > ul, +.gh-content .kg-toggle-card .kg-toggle-content > p { + font-family: var(--font-serif); + font-weight: 400; + font-size: 1.9rem; + line-height: 1.6em; +} + +.gh-content .kg-product-card .kg-product-card-description > p, +.gh-content .kg-product-card .kg-product-card-description > ol, +.gh-content .kg-product-card .kg-product-card-description > ul { + font-size: 1.7rem; + line-height: 1.6em; +} + +.gh-content .kg-callout-card .kg-callout-emoji { + font-size: 2.1rem; + line-height: 1.4em; +} + +.gh-content .kg-toggle-card .kg-toggle-heading-text { + font-size: 2.0rem; +} + +.has-sans-body .gh-content > blockquote, +.has-sans-body .gh-content > ol, +.has-sans-body .gh-content > ul, +.has-sans-body .gh-content > dl, +.has-sans-body .gh-content > p, +.has-sans-body .gh-content .kg-callout-card .kg-callout-text, +.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > ol, +.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > ul, +.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > p { + font-family: var(--font-sans); +} + +.gh-content > ul, +.gh-content > ol, +.gh-content > dl, +.gh-content .kg-toggle-card .kg-toggle-content > ol, +.gh-content .kg-toggle-card .kg-toggle-content > ul, +.gh-content .kg-product-card .kg-product-card-description > ol, +.gh-content .kg-product-card .kg-product-card-description > ul { + padding-left: 1.9em; +} + +.gh-content > blockquote:not([class]) { + position: relative; + font-style: italic; padding: 0; - font-size: inherit; - line-height: inherit; - background: transparent; } -.post-full-content pre code :not(span) { - color: inherit; -} - -.post-full-content .fluid-width-video-wrapper { - margin: 1.5em 0 3em; -} - -.post-full-content hr { - margin: 2em 0; -} - -.post-full-content hr:after { +.gh-content > blockquote:not([class])::before { content: ""; position: absolute; - top: -15px; - left: 50%; - display: block; - margin-left: -10px; - width: 1px; - height: 30px; - background: color-mod(var(--lightgrey) l(+10%)); - box-shadow: #fff 0 0 0 5px; - transform: rotate(45deg); + left: -1.5em; + top: 0; + bottom: 0; + width: 0.3rem; + background: var(--ghost-accent-color); } -.post-full-content hr + p { - margin-top: 1.2em; +.gh-content :not(pre) > code { + vertical-align: middle; + padding: 0.15em 0.4em 0.15em; + border: #e1eaef 1px solid; + font-weight: 400 !important; + font-size: 0.9em; + line-height: 1em; + color: #15171A; + background: #f0f6f9; + border-radius: 0.25em; } -.post-full-content h1, -.post-full-content h2, -.post-full-content h3, -.post-full-content h4, -.post-full-content h5, -.post-full-content h6 { - color: color-mod(var(--darkgrey) l(-5%)); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; +.gh-content pre { + overflow: auto; + padding: 16px 20px; + color: var(--color-wash); + font-size: 1.4rem; + line-height: 1.5em; + background: var(--color-darkgrey); + border-radius: 5px; + box-shadow: 0 2px 6px -2px rgba(0,0,0,.1), 0 0 1px rgba(0,0,0,.4); } -.post-full-content h1 { - margin: 0.5em 0 0.4em; - font-size: 4.2rem; - line-height: 1.25em; - font-weight: 600; -} -.post-full-content p + h1 { - margin-top: 0.8em; -} -@media (max-width: 800px) { - .post-full-content h1 { - font-size: 3.2rem; - line-height: 1.25em; +@media (max-width: 650px) { + .gh-content > blockquote:not([class]), + .gh-content > ol, + .gh-content > ul, + .gh-content > dl, + .gh-content > p, + .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 > ul, + .gh-content .kg-toggle-card .kg-toggle-content > p { + font-size: 1.7rem; + } + + .gh-content .kg-product-card .kg-product-card-description > p, + .gh-content .kg-product-card .kg-product-card-description > ol, + .gh-content .kg-product-card .kg-product-card-description > ul { + font-size: 1.5rem; + } + + .gh-content blockquote:not([class])::before { + left: -4vmin; } } -.post-full-content h2 { - margin: 0.5em 0 0.4em; - font-size: 3.2rem; - line-height: 1.25em; - font-weight: 600; + +/* Cards +/* ---------------------------------------------------------- */ + +/* Cards are dynamic blocks of content which appear within Ghost +posts, for example: embedded videos, tweets, galleries, or +specially styled bookmark links. We add extra styling here to +make sure they look good, and are given a bit of extra spacing. */ + +/* Add extra margin before/after any cards, +except for when immediately preceeded by a heading */ +.gh-content :not(.kg-card):not([id]) + .kg-card { + margin-top: 6vmin; + margin-bottom: 0; } -.post-full-content p + h2 { - margin-top: 0.8em; -} -@media (max-width: 800px) { - .post-full-content h2 { - margin-bottom: 0.3em; - font-size: 2.8rem; - line-height: 1.25em; - } +.gh-content .kg-card + :not(.kg-card) { + margin-top: 6vmin; + margin-bottom: 0; } -.post-full-content h3 { - margin: 0.5em 0 0.2em; - font-size: 2.5rem; - line-height: 1.3em; - font-weight: 600; -} -.post-full-content h2 + h3 { - margin-top: 0.7em; -} -@media (max-width: 800px) { - .post-full-content h3 { - margin-bottom: 0.3em; - font-size: 2.4rem; - line-height: 1.3em; - } +/* This keeps small embeds centered */ +.kg-embed-card { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; } -.post-full-content h4 { - margin: 0.5em 0 0.2em; - font-size: 2.5rem; - font-weight: 600; -} -.post-full-content h2 + h4 { - margin-top: 0.7em; -} -.post-full-content h3 + h4 { - margin-top: 0; -} -@media (max-width: 800px) { - .post-full-content h4 { - margin-bottom: 0.3em; - font-size: 2.4rem; - line-height: 1.3em; - } +/* This keeps small iamges centered */ +.kg-image-card img { + margin: auto; } -.post-full-content h5 { - display: block; - margin: 0.5em 0; - padding: 0.4em 1em 0.9em; - border: 0; - color: var(--blue); - font-family: Georgia,serif; - font-size: 3.2rem; - line-height: 1.35em; +.has-serif-title .kg-toggle-card .kg-toggle-heading-text { + font-family: var(--font-serif); +} + +.gh-content .kg-callout-card-accent a { + text-decoration: underline; +} + +.kg-blockquote-alt { + font-family: var(--font-serif); + color: var(--color-midgrey); +} + +.has-sans-body .kg-blockquote-alt { + font-family: var(--font-sans); +} + +.kg-card.kg-header-card.kg-style-dark { + background: var(--color-darkgrey); +} + +.kg-header-card.kg-style-light h2.kg-header-card-header { + color: color-mod(var(--color-darkgrey) l(-5%)); +} + +.has-serif-title .kg-header-card h2.kg-header-card-header { + font-family: var(--font-serif); +} + + +/* Captions */ +figcaption { + padding: 1.5rem 1.5rem 0; text-align: center; + color: rgba(0,0,0,0.5); + font-weight: 600; + font-size: 1.3rem; + line-height: 1.4em; } -@media (min-width: 1180px) { - .post-full-content h5 { - max-width: 1060px; - width: 100vw; - } +figcaption strong { + color: rgba(0,0,0,0.8); } -@media (max-width: 800px) { - .post-full-content h5 { - margin-bottom: 1em; - margin-left: 1.3em; - padding: 0 0 0.5em; - font-size: 2.4rem; - text-align: initial; - } +figcaption a { + color: var(--ghost-accent-color); } -.post-full-content h6 { - margin: 0.5em 0 0.2em 0; - font-size: 2.0rem; - font-weight: 700; + +/* Highly specific styles for traditional Instagram embeds */ +iframe.instagram-media { + margin-top: 6vmin !important; + margin-left: auto !important; + margin-right: auto !important; + margin-bottom: 0 !important; } -@media (max-width: 800px) { - .post-full-content h6 { - font-size: 1.8rem; - line-height: 1.4em; - } + +iframe.instagram-media + script + :not([id]) { + margin-top: 6vmin; } + +/* Card captions +/* ---------------------------------------------------------- */ + +.kg-width-full.kg-card-hascaption { + display: grid; + grid-template-columns: inherit; +} + +.kg-width-wide.kg-card-hascaption img { + grid-column: wide-start / wide-end; +} +.kg-width-full.kg-card-hascaption img { + grid-column: 1 / -1; +} + +.kg-width-full.kg-card-hascaption figcaption { + grid-column: main-start / main-end; +} + +.article-comments { + margin: 6vmin 0 0 0; +} + +/* -----old------ */ + .footnotes-sep { margin-bottom: 30px; } @@ -1387,58 +1270,12 @@ Usage (In Ghost editor): } .footnote-backref { - color: var(--blue) !important; font-size: 1.2rem; font-weight: bold; text-decoration: none !important; box-shadow: none !important; } -/* Some grouped styles for smaller viewports */ -@media (max-width: 1170px) { - .post-full-image { - margin: 25px -6vw 50px; - border-radius: 0; - } - - .post-full-image img { - max-width: 1170px; - } -} - -@media (max-width: 700px) { - .post-full-image { - margin: 25px -5vw; - } -} - -@media (max-width: 500px) { - .post-full-meta { - font-size: 1.2rem; - line-height: 1.3em; - } - - .post-full-title { - margin-top: 0.2em; - font-size: 4.2rem; - line-height: 1.05em; - } - - .post-full-image { - margin-top: 5px; - margin-bottom: 5vw; - } - - .post-full-content { - padding: 0; - } - - .post-full-content:before, - .post-full-content:after { - display: none; - } -} - /* Tables */ .post-full-content table { display: inline-block; @@ -1448,7 +1285,7 @@ Usage (In Ghost editor): width: auto; border-spacing: 0; border-collapse: collapse; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; + font-family: var(--font-sans-serif); font-size: 1.6rem; white-space: nowrap; vertical-align: top; @@ -1476,71 +1313,56 @@ Usage (In Ghost editor): } .post-full-content table th { - color: var(--darkgrey); + color: var(--color-darkgrey); font-size: 1.2rem; font-weight: 700; letter-spacing: 0.2px; text-align: left; text-transform: uppercase; - background-color: color-mod(var(--whitegrey) l(+4%)); + background-color: color-mod(var(--color-wash) l(+4%)); } .post-full-content table th, .post-full-content table td { padding: 6px 12px; - border: color-mod(var(--whitegrey) l(-1%) s(-5%)) 1px solid; + border: color-mod(var(--color-wash) l(-1%) s(-5%)) 1px solid; } /* 7.1. Post Byline /* ---------------------------------------------------------- */ -.post-full-byline { +.article-byline { display: flex; justify-content: space-between; - margin: 35px 0 0; - padding-top: 15px; - border-top: 1px solid color-mod(var(--lightgrey) l(+10%)); + margin: 20px 0 0; } -.post-full-byline-content { +.article-byline-content { flex-grow: 1; display: flex; - align-items: flex-start; + align-items: center; } -.post-full-byline-content .author-list { +.article-byline-content .author-list { justify-content: flex-start; padding: 0 12px 0 0; } -.post-full-byline-meta { - margin: 2px 0 0; - color: color-mod(var(--midgrey) l(+10%)); - font-size: 1.2rem; +.article-byline-meta { + color: color-mod(var(--color-midgrey)); + font-size: 1.4rem; line-height: 1.2em; - letter-spacing: 0.2px; - text-transform: uppercase;; } -.post-full-byline-meta h4 { +.article-byline-meta h4 { margin: 0 0 3px; - font-size: 1.3rem; - line-height: 1.4em; - font-weight: 500; + font-size: 1.6rem; } -.post-full-byline-meta h4 a { - color: color-mod(var(--darkgrey) l(+10%)); -} - -.post-full-byline-meta h4 a:hover { - color: var(--darkgrey); -} - -.post-full-byline-meta .bull { +.article-byline-meta .bull { display: inline-block; - margin: 0 4px; + margin: 0 2px; opacity: 0.6; } @@ -1548,88 +1370,13 @@ Usage (In Ghost editor): display: block; overflow: hidden; margin: 0 -4px; - width: 40px; - height: 40px; + width: 50px; + height: 50px; border: #fff 2px solid; border-radius: 100%; transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 700ms; } -.author-list-item .author-card { - position: absolute; - bottom: 130%; - left: 50%; - z-index: 600; - display: flex; - justify-content: space-between; - margin-left: -200px; - width: 400px; - font-size: 1.4rem; - line-height: 1.5em; - background: white; - border-radius: 3px; - box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.06) 1px 3px 8px; - opacity: 0; - transition: all 0.35s cubic-bezier(0.4, 0.01, 0.165, 0.99); - transform: scale(0.98) translateY(15px); - pointer-events: none; -} - -.author-list-item .author-card:before { - content: ""; - position: absolute; - top: 100%; - left: 50%; - display: block; - margin-left: -8px; - width: 0; - height: 0; - border-top: 8px solid #fff; - border-right: 8px solid transparent; - border-left: 8px solid transparent; -} - -.author-list-item .author-card.hovered { - opacity: 1.0; - transform: scale(1) translateY(0px); - pointer-events: auto; -} - -.author-card { - padding: 20px 20px 22px; -} - -.author-card .author-info { - flex: 1 1 auto; - padding: 0 0 0 20px; -} - -.author-card .author-info h2 { - margin: 8px 0 0; - font-size: 1.6rem; -} - -.author-card .author-info p { - margin: 4px 0 0; - color: color-mod(var(--midgrey) l(-10%)); -} - -.author-card .author-info .bio h2 { - margin-top: 0; -} - -.author-card .author-info .bio p { - margin-top: 0.8em; -} - -.author-card .author-profile-image { - flex: 0 0 60px; - margin: 0; - width: 60px; - height: 60px; - border: none; -} - .basic-info .avatar-wrapper { position: relative; margin: 0; @@ -1646,859 +1393,226 @@ Usage (In Ghost editor): opacity: 0.15; } -@media (max-width: 1170px) { - .author-list-item .author-card { - margin-left: -50px; - width: 430px; - } +.page-template .article-title { + margin-bottom: 0; +} - .author-list-item .author-card:before { - left: 50px; + +/* 7.3. Subscribe +/* ---------------------------------------------------------- */ + +.footer-cta { + position: relative; + margin-bottom: -40px; + padding: 9vmin 4vmin 10vmin; + color: #fff; + text-align: center; + background: var(--color-darkgrey); +} + +.footer-cta.cta-alt { + padding: 2vmin 4vmin 12vmin; + background: transparent; +} + +/* Increases the default h2 size by 15%, for small and large screens */ +.footer-cta h2 { + margin: 0 0 30px; + font-size: 3.2rem; +} + +.footer-cta.cta-alt h2 { + color: var(--color-darkgrey); +} + +@media (max-width: 600px) { + .footer-cta h2 { + font-size: 2.65rem; } } -@media (max-width: 650px) { - .author-list-item .author-card { +.footer-cta-button { + position: relative; + display: inline-flex; + align-items: center; + justify-content: space-between; + width: 100%; + max-width: 500px; + padding: 5px 5px 5px 15px; + font-size: 1.8rem; + color: var(--color-midgrey); + background: #fff; + border-radius: 8px; +} + +.footer-cta.cta-alt .footer-cta-button { + border: 1px solid var(--color-lightgrey); +} + +.footer-cta-button span { + display: inline-block; + padding: 10px 15px; + color: #fff; + font-weight: 500; + background: var(--ghost-accent-color); + border-radius: 5px; +} + + +/* 7.4. Read more +/* ---------------------------------------------------------- */ + +.read-more-wrap { + width: 100%; + padding: 4vmin; + margin: 40px auto -40px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + background: color-mod(var(--color-darkgrey) l(-5%)); +} + +.read-more { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + grid-gap: 4vmin; +} + +.read-more .post-card-title { + color: #fff; + opacity: 0.8; +} + +.read-more .post-card-excerpt { + color: rgba(255, 255, 255, 0.6); +} + +.read-more .post-card-byline-content a { + color: #fff; +} + + +@media (max-width: 1000px) { + .read-more { + grid-template-columns: 1fr 1fr; + } + .read-more article:nth-child(3) { display: none; } } -@media (max-width: 500px) { - .author-avatar { - width: 36px; - height: 36px; - } - - .post-full-byline { - margin-top: 20px; - } - - .post-full-byline-meta { - font-size: 1.2rem; - } - - .post-full-byline-meta h4 { - margin-bottom: 2px; - font-size: 1.2rem; - } -} - - -/* 7.2. Members Subscribe Form -/* ---------------------------------------------------------- */ -.subscribe-form { - margin: 1.5em 0; - padding: 6.5vw 7vw 8vw; - border: color-mod(var(--lightgrey) l(+10%)) 1px solid; - text-align: center; - background: linear-gradient(color-mod(var(--whitegrey) l(+6%)), color-mod(var(--whitegrey) l(+4%))); - border-radius: 3px; -} - -.subscribe-form-title { - margin: 0 0 3px 0; - padding: 0; - color: var(--darkgrey); - font-size: 3.5rem; - line-height: 1; - font-weight: 600; -} - -.subscribe-form-description { - margin-bottom: 0.2em 0 1em; - color: var(--midgrey); - font-size: 2.1rem; - line-height: 1.55em; -} - -.subscribe-form form { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - margin: 0 auto; - max-width: 460px; -} - -.subscribe-form .form-group { - align-self: stretch; - display: flex; -} - -.subscribe-email { - display: block; - padding: 10px; - width: 100%; - border: color-mod(var(--lightgrey) l(+7%)) 1px solid; - color: var(--midgrey); - font-size: 1.8rem; - line-height: 1em; - font-weight: normal; - user-select: text; - border-radius: 5px; - transition: border-color 0.15s linear; - - -webkit-appearance: none; -} - -.subscribe-email:focus { - outline: 0; - border-color: color-mod(var(--lightgrey) l(-2%)); -} - -.subscribe-form button { - position: relative; - display: inline-block; - margin: 0 0 0 10px; - padding: 0 20px; - height: 43px; - outline: none; - color: #fff; - font-size: 1.5rem; - line-height: 39px; - font-weight: 400; - text-align: center; - background: linear-gradient( - color-mod(var(--blue) whiteness(+7%)), - color-mod(var(--blue) lightness(-7%) saturation(-10%)) 60%, - color-mod(var(--blue) lightness(-7%) saturation(-10%)) 90%, - color-mod(var(--blue) lightness(-4%) saturation(-10%)) - ); - border-radius: 5px; - - -webkit-font-smoothing: subpixel-antialiased; -} - -.subscribe-form button:active, -.subscribe-form button:focus { - background: color-mod(var(--blue) lightness(-9%) saturation(-10%)); -} - -.subscribe-form .button-loader, -.subscribe-form .message-success, -.subscribe-form .message-error { - display: none; -} - -.subscribe-form .loading .button-content { - visibility: hidden; -} - -.subscribe-form .loading .button-loader { - position: absolute; - top: 0; - left: 50%; - display: inline-block; - margin-left: -19px; - transform: scale(0.7); -} - -.subscribe-form .button-loader svg path, -.subscribe-form .button-loader svg rect { - fill: #fff; -} - -.subscribe-form .success .message-success, -.subscribe-form .invalid .message-error, -.subscribe-form .error .message-error { - margin: 1em auto 0; - max-width: 400px; - color: var(--red); - font-size: 1.6rem; - line-height: 1.5em; - text-align: center; -} - -.subscribe-form .success .message-success { - display: block; - color: color-mod(var(--green) l(-5%)); -} - -.subscribe-form .invalid .message-error, -.subscribe-form .error .message-error { - display: block; -} - - -@media (max-width: 650px) { - .subscribe-form-title { - font-size: 2.4rem; - } - - .subscribe-form-description { - font-size: 1.6rem; - } -} - -@media (max-width: 500px) { - .subscribe-form form { - flex-direction: column; - } - - .subscribe-form .form-group { - flex-direction: column; - width: 100%; - } - - .subscribe-form button { - margin: 10px 0 0 0; - width: 100%; - } -} - - -/* 7.3. Comments -/* ---------------------------------------------------------- */ - -.post-full-comments { - margin: 0 auto; - max-width: 840px; -} - - -/* 7.4. Related posts -/* ---------------------------------------------------------- */ - -.read-next { - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - background: color-mod(var(--darkgrey) l(-5%)); -} - -.read-next-feed { - display: flex; - flex-wrap: wrap; - margin: 0 -25px; - padding: 60px 0 0 0; -} - -.read-next .post-card { - padding-bottom: 0; - border-bottom: none; -} - -.read-next .post-card:after { - display: none; -} - -.read-next .post-card-primary-tag { - color: #fff; - opacity: 0.6; -} - -.read-next .post-card-title { - color: #fff; - opacity: 0.8; - transition: all 0.2s ease-in-out; -} - -.read-next .post-card:hover .post-card-image { - opacity: 1.0; -} - -.read-next .post-card-excerpt { - color: rgba(255, 255, 255, 0.6); -} - -.read-next .static-avatar { - border-color: #000; -} - -.read-next .post-card-byline-content { - color: rgba(255, 255, 255, 0.6); -} - -.read-next .post-card-byline-content a { - color: rgba(255, 255, 255, 0.8); -} - -.read-next-card { - position: relative; - flex: 0 1 326px; - display: flex; - flex-direction: column; - overflow: hidden; - margin: 0 25px 50px; - padding: 25px; - background: linear-gradient(color-mod(var(--darkgrey) l(+2%)), color-mod(var(--darkgrey) l(-5%))); - border-radius: 3px; -} - -.read-next-card a { - transition: all 0.2s ease-in-out; -} - -.read-next-card a:hover { - text-decoration: none; -} - -.read-next-card-header h3 { - margin: 0; - color: rgba(255, 255, 255, 0.6); - font-size: 1.2rem; - line-height: 1em; - font-weight: 300; - letter-spacing: 0.4px; - text-transform: uppercase; -} - -.read-next-card-header h3 a { - color: #fff; - font-weight: 500; - text-decoration: none; - opacity: 0.8; -} - -.read-next-card-header h3 a:hover { - opacity: 1; -} - -.read-next-card-content { - font-size: 1.7rem; -} - -.read-next-card-content ul { - display: flex; - flex-direction: column; - margin: 0; - padding: 0; - list-style: none; -} - -.read-next-card-content li { - display: flex; - flex-direction: column; - align-items: flex-start; - margin: 0; - padding: 20px 0; - border-bottom: rgba(255, 255, 255, 0.1); -} - -.read-next-card-content li:last-of-type { - padding-bottom: 5px; - border: none; -} - -.read-next-card-content h4 { - margin: 0; - font-size: 1.6rem; - line-height: 1.35em; - font-weight: 600; -} - -.read-next-card-content li a { - display: block; - color: #fff; - opacity: 0.8; -} - -.read-next-card-content li a:hover { - opacity: 1; -} - -.read-next-card-excerpt { - overflow: hidden; - max-width: 100%; - font-size: 1.4rem; - line-height: 1.2em; - text-overflow: ellipsis; -} - -.read-next-card-meta { - margin-top: 2px; - font-size: 1.2rem; - line-height: 1.4em; - font-weight: 400; -} - -.read-next-card-meta p { - margin: 0; - color: rgba(255, 255, 255, 0.6); -} - -.read-next-card-footer { - position: relative; - margin: 40px 0 5px; -} - -.read-next-card-footer a { - padding: 7px 12px 8px 14px; - border: 1px solid rgba(255, 255, 255, 0.6); - color: rgba(255, 255, 255, 0.6); - font-size: 1.3rem; - border-radius: 999px; - transition: all 0.35s ease-in-out; -} - -.read-next-card-footer a:hover { - border-color: var(--yellow); - color: var(--yellow); - text-decoration: none; -} - -@media (max-width: 1170px) { - .read-next-card { - flex: 1 1 261px; - margin-bottom: 5vw; - } -} - -@media (max-width: 650px) { - .read-next-feed { - flex-direction: column; - padding: 25px 0 0; - } - - .read-next-card { - flex: 1 1 auto; - margin: 0 25px; - padding: 0; - background: none; - } - - .read-next .post-card { - flex: 1 1 auto; - margin: 25px; - padding: 25px 0 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); - } -} - - -/* 7.5. Koenig Styles -/* ---------------------------------------------------------- */ - -.post-content { - display: flex; - flex-direction: column; - align-items: center; -} - -.post-full-content .kg-image { - margin: 0 auto; - max-width: 100%; -} - -/* Preventing full-width image overlap with post image. */ -.post-full-image + .post-full-content .kg-content *:first-child .kg-image { - width: 100%; -} - -.post-full-content .kg-width-wide .kg-image { - max-width: 1040px; -} - -.post-full-content .kg-width-full .kg-image { - max-width: 100vw; -} - -.post-full-content figure { - margin: 0.8em 0 2.3em; -} - -.post-full-content h1 + figure, -.post-full-content h2 + figure, -.post-full-content h3 + figure, -.post-full-content h4 + figure { - margin-top: 2em; -} - -.post-full-content figure img { - margin: 0; -} - -.post-full-content figcaption { - margin: 1.0em auto 0; - color: color-mod(var(--midgrey) l(-10%)); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; - font-size: 75%; - line-height: 1.5em; - text-align: center; - max-width: 1040px; -} - -.kg-width-full figcaption { - padding: 0 1.5em; -} - -.kg-embed-card { - display: flex; - flex-direction: column; - align-items: center; - width: 100%; -} - -.kg-embed-card .fluid-width-video-wrapper { - margin: 0; -} - - -@media (max-width: 1040px) { - .post-full-content .kg-width-full .kg-image { - width: 100vw; - } -} - -.kg-gallery-container { - display: flex; - flex-direction: column; - max-width: 1040px; - width: 100vw; -} - -.kg-gallery-row { - display: flex; - flex-direction: row; - justify-content: center; -} - -.kg-gallery-image img { - display: block; - margin: 0; - width: 100%; - height: 100%; -} - -.kg-gallery-row:not(:first-of-type) { - margin: 0.75em 0 0 0; -} - -.kg-gallery-image:not(:first-of-type) { - margin: 0 0 0 0.75em; -} - -.kg-gallery-card + .kg-image-card.kg-width-wide, -.kg-gallery-card + .kg-gallery-card, -.kg-image-card.kg-width-wide + .kg-gallery-card, -.kg-image-card.kg-width-wide + .kg-image-card.kg-width-wide { - margin: -2.25em 0 3em; -} - -/* keep existing
 styles for code cards with captions */
-.kg-code-card {
-    width: 100%;
-}
-
-.kg-code-card pre {
-    margin: 0;
-}
-
-.kg-bookmark-card {
-    width: 100%;
-}
-
-.kg-card + .kg-bookmark-card {
-    margin-top: 0;
-}
-
-.post-full-content .kg-bookmark-container {
-    display: flex;
-    min-height: 148px;
-    color: var(--darkgrey);
-    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
-    text-decoration: none;
-    border-radius: 3px;
-    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);
-}
-
-.post-full-content .kg-bookmark-container:hover {
-    color: var(--darkgrey);
-    text-decoration: none;
-    box-shadow: 0 2px 5px -1px rgba(0, 0, 0, 0.15), 0 0 1px rgba(0, 0, 0, 0.09);
-}
-
-.kg-bookmark-content {
-    flex-grow: 1;
-    display: flex;
-    flex-direction: column;
-    justify-content: flex-start;
-    align-items: flex-start;
-    padding: 20px;
-}
-
-.kg-bookmark-title {
-    color: color-mod(var(--midgrey) l(-30%));
-    font-size: 1.6rem;
-    line-height: 1.5em;
-    font-weight: 600;
-    transition: color 0.2s ease-in-out;
-}
-
-.post-full-content .kg-bookmark-container:hover .kg-bookmark-title {
-    color: var(--blue);
-}
-
-.kg-bookmark-description {
-    display: -webkit-box;
-    overflow-y: hidden;
-    margin-top: 12px;
-    max-height: 48px;
-    color: color-mod(var(--midgrey) l(-10%));
-    font-size: 1.5rem;
-    line-height: 1.5em;
-    font-weight: 400;
-
-    -webkit-line-clamp: 2;
-    -webkit-box-orient: vertical;
-}
-
-.kg-bookmark-thumbnail {
-    position: relative;
-    min-width: 33%;
-    max-height: 100%;
-}
-
-.kg-bookmark-thumbnail img {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    border-radius: 0 3px 3px 0;
-
-    object-fit: cover;
-}
-
-.kg-bookmark-metadata {
-    display: flex;
-    flex-wrap: wrap;
-    align-items: center;
-    margin-top: 14px;
-    color: var(--darkgrey);
-    font-size: 1.5rem;
-    font-weight: 500;
-}
-
-.post-full-content .kg-bookmark-icon {
-    margin-right: 8px;
-    width: 22px;
-    height: 22px;
-}
-
-.kg-bookmark-author {
-    line-height: 1.5em;
-}
-
-.kg-bookmark-author:after {
-    content: "•";
-    margin: 0 6px;
-}
-
-.kg-bookmark-publisher {
-    overflow: hidden;
-    max-width: 240px;
-    line-height: 1.5em;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    color: color-mod(var(--midgrey) l(-10%));
-    font-weight: 400;
-}
-
-@media (max-width: 800px) {
-    .post-full-content figure {
-        margin: 0.2em 0 1.3em;
-    }
-
-    .post-full-content h1 + figure,
-    .post-full-content h2 + figure,
-    .post-full-content h3 + figure,
-    .post-full-content h4 + figure {
-        margin-top: 0.9em;
-    }
-}
-
-@media (max-width: 500px) {
-    .post-full-content .kg-width-wide,
-    .post-full-content .kg-width-full {
-        margin-right: -5vw;
-        margin-left: -5vw;
-    }
-
-    .post-full-content figcaption {
-        margin-bottom: 0.4em;
-    }
-
-    .post-full-content .kg-bookmark-container {
-        flex-direction: column;
-    }
-
-    .kg-bookmark-title,
-    .kg-bookmark-description,
-    .kg-bookmark-metadata {
-        font-size: 1.4rem;
-        line-height: 1.5em;
-    }
-
-    .post-full-content .kg-bookmark-icon {
-        width: 18px;
-        height: 18px;
-    }
-
-    .kg-bookmark-thumbnail {
-        order: 1;
-        min-height: 160px;
-        width: 100%;
-    }
-
-    .kg-bookmark-thumbnail img {
-        border-radius: 3px 3px 0 0;
-    }
-
-    .kg-bookmark-content {
-        order: 2;
-    }
-}
-
-/* 8. Author Template
-/* ---------------------------------------------------------- */
-.author-header {
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-start;
-    align-items: flex-start;
-    padding: 10vw 0 10px;
-}
-
-.site-archive-header .author-header {
-    align-items: center;
-}
-
-.site-archive-header .no-image .author-header {
-    padding-bottom: 20px;
-}
-
-.author-header-content {
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    margin: 5px 0 0 30px;
-}
-
-.site-header-content .author-profile-image {
-    z-index: 10;
-    flex-shrink: 0;
-    margin: -4px 0 0;
-    width: 110px;
-    height: 110px;
-    box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;
-}
-
-.author-header-content .author-bio {
-    z-index: 10;
-    flex-shrink: 0;
-    margin: 6px 0 0;
-    max-width: 46em;
-    font-size: 2.0rem;
-    line-height: 1.3em;
-    font-weight: 400;
-    opacity: 0.8;
-}
-
-.author-header-content .author-meta {
-    z-index: 10;
-    flex-shrink: 0;
-    display: flex;
-    align-items: center;
-    margin: 0 0 0 1px;
-    font-size: 1.2rem;
-    font-weight: 400;
-    letter-spacing: 0.2px;
-    text-transform: uppercase;
-    white-space: nowrap;
-}
-
-.author-header-content .social-link:first-of-type {
-    padding-left: 4px;
-}
-
-.no-image .author-header-content .author-bio {
-    color: var(--midgrey);
-    opacity: 1.0;
-}
-
-.no-image .author-header-content .author-meta {
-    color: var(--midgrey);
-    opacity: 1.0;
-}
-
-.author-social-link a {
-    color: #fff;
-    font-weight: 600;
-}
-
-.no-image .author-social-link a {
-    color: var(--darkgrey);
-}
-
-.author-social-link a:hover {
-    opacity: 1;
-}
-
-.author-social-link {
-    display: inline-block;
-    margin: 0;
-    padding: 6px 0;
-}
-
-.author-location + .author-stats:before,
-.author-stats + .author-social-link:before,
-.author-social-link + .author-social-link:before {
-    content: "\2022";
-    display: inline-block;
-    margin: 0 12px;
-    color: #fff;
-    opacity: 0.6;
-}
-
-.no-image .author-location + .author-stats:before,
-.no-image .author-stats + .author-social-link:before,
-.no-image .author-social-link + .author-social-link:before {
-    color: var(--midgrey);
-}
-
 @media (max-width: 700px) {
-    .author-location,
-    .author-stats,
-    .author-stats + .author-social-link:first-of-type:before {
+    .read-more {
+        grid-template-columns: 1fr;
+    }
+    .read-more article:nth-child(2) {
         display: none;
     }
 }
 
-@media (max-width: 500px) {
-    .author-header {
-        padding: 10px 0 0;
-    }
 
-    .no-image .author-header {
-        padding-bottom: 10px;
-    }
+/* 8. Author Template
+/* ---------------------------------------------------------- */
 
-    .author-header-content {
+.author-template .posts {
+    position: relative;
+    height: 100%;
+    display: grid;
+    grid-template-columns: 200px 1fr 1fr;
+    grid-gap: 4vmin;
+}
+
+.author-template .posts .post-feed {
+    grid-column: 2 / 4;
+    grid-template-columns: 1fr 1fr;
+}
+
+.author-profile {
+    padding: 4vmin 0;
+}
+
+.author-profile-content {
+    height: auto;
+    position: sticky;
+    top: 4vmin;
+    font-size: 1.4rem;
+    line-height:  1.4em;
+}
+
+.author-profile-pic {
+    display: block;
+    width: 150px;
+    height: 150px;
+    object-fit: cover;
+    margin: 0 0 2rem;
+    background: color-mod(var(--color-lightgrey) l(+10%));
+    border-radius: 50%;
+}
+
+.author-profile h1 {
+    margin: 0 0 0.3em;
+    font-size: 2rem;
+}
+
+.author-profile p {
+    margin: 0 0 1.5em;
+    color: color-mod(var(--color-midgrey) l(-8%));
+}
+
+.author-profile-location {
+    margin: 0 0 1.5em;
+    font-weight: 700;
+}
+
+.author-profile-social-link {
+    display: block;
+    padding: 0 0 5px;
+    font-size: 1.3rem;
+    color: color-mod(var(--color-midgrey) l(-8%));
+    text-overflow: ellipsis;
+    overflow: hidden;
+    max-width: 100%;
+    white-space: nowrap;
+}
+
+.author-profile-social-link:hover {
+    color: var(--color-darkgrey);
+}
+
+@media (max-width: 900px) {
+    .author-template .posts .post-feed {
+        grid-template-columns: 1fr;
+    }
+}
+
+@media (max-width: 650px) {
+    .author-template .posts {
+        grid-template-columns: 1fr;
+        grid-gap: 0;
+    }
+    .author-template .posts .post-feed {
+        grid-column: 1 / auto;
+    }
+    .author-profile {
+        padding-right: 0;
+    }
+    .author-profile-content {
+        display: flex;
+        flex-direction: column;
         align-items: center;
-        margin: 16px 0 0 0;
-    }
-
-    .site-header-content .author-profile-image {
-        width: 96px;
-        height: 96px;
-    }
-
-    .author-header-content .author-bio {
-        font-size: 1.8rem;
-        line-height: 1.3em;
-        letter-spacing: 0;
         text-align: center;
     }
+}
 
-    .author-header-content .author-meta {
-        margin-top: 8px;
-    }
 
-    .author-location + .author-stats:before,
-    .author-stats + .author-social-link:before,
-    .author-social-link + .author-social-link:before {
-        display: inline;
-        margin: 0 6px;
-    }
+/* 8. Tag Template
+/* ---------------------------------------------------------- */
+
+.tag-template .post-card-large .post-card-image-link {
+    grid-column: 2 / span 2;
+    order: 2;
+}
+
+.tag-template .post-card-large .post-card-content {
+    order: 1;
 }
 
 
@@ -2509,37 +1623,23 @@ Usage (In Ghost editor):
     padding: 14vw 4vw 6vw;
 }
 
-.site-nav-center {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    padding: 10px 0;
-    text-align: center;
-}
-
-.site-nav-center .site-nav-logo {
-    margin-right: 0;
-}
-
 .error-message {
     padding-bottom: 10vw;
-    border-bottom: 1px solid color-mod(var(--lightgrey) l(+10%));
     text-align: center;
 }
 
 .error-code {
     margin: 0;
-    color: var(--lightgrey);
+    color: var(--ghost-accent-color);
     font-size: 12vw;
     line-height: 1em;
     letter-spacing: -5px;
-    opacity: 0.75;
 }
 
 .error-description {
     margin: 0;
-    color: var(--midgrey);
-    font-size: 3rem;
+    color: var(--color-midgrey);
+    font-size: 3.2rem;
     line-height: 1.3em;
     font-weight: 400;
 }
@@ -2583,532 +1683,424 @@ Usage (In Ghost editor):
 }
 
 
-/* 10. Subscribe Message and Overlay
-/* ---------------------------------------------------------- */
-
-.subscribe-notification {
-    position: fixed;
-    top: 0;
-    right: 0;
-    left: 0;
-    z-index: 9000;
-    padding: 20px 0;
-    color: #fff;
-    text-align: center;
-    background: var(--green);
-    transition: all 0.35s cubic-bezier(0.19, 1, 0.22, 1) 0.5s;
-    transform: translateY(-175%);
-}
-
-.subscribe-notification.subscribe-failure-message {
-    background: var(--red);
-}
-
-.subscribe-success .subscribe-success-message {
-    visibility: visible;
-    transform: translateY(0);
-}
-
-.subscribe-failure .subscribe-failure-message {
-    visibility: visible;
-    transform: translateY(0);
-}
-
-.subscribe-notification.close {
-    visibility: hidden;
-    transition: all 1.35s cubic-bezier(0.19, 1, 0.22, 1);
-    transform: translateY(-175%);
-}
-
-.subscribe-notification .subscribe-close-button {
-    left: 0;
-    top: 0;
-    width: 100%;
-    height: 100%;
-}
-
-.subscribe-notification .subscribe-close-button:before,
-.subscribe-notification .subscribe-close-button:after {
-    top: 31px;
-    right: 20px;
-    width: 18px;
-    height: 2px;
-}
-
-.subscribe-close-overlay {
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    display: block;
-}
-
-.subscribe-close-button {
-    position: absolute;
-    top: 16px;
-    right: 20px;
-    z-index: 2000;
-    display: block;
-    width: 40px;
-    height: 40px;
-}
-
-.subscribe-close-button:before {
-    content: "";
-    position: absolute;
-    top: 20px;
-    right: 4px;
-    display: block;
-    width: 32px;
-    height: 1px;
-    background: #fff;
-    opacity: 0.8;
-    transform: rotate(45deg);
-}
-
-.subscribe-close-button:after {
-    content: "";
-    position: absolute;
-    top: 20px;
-    right: 4px;
-    display: block;
-    width: 32px;
-    height: 1px;
-    background: #fff;
-    opacity: 0.8;
-    transform: rotate(-45deg);
-}
-
-.subscribe-close-overlay:hover,
-.subscribe-close-button:hover {
-    cursor: default;
-}
-
-.subscribe-overlay {
-    position: fixed;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    z-index: 2000;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    background: rgba(9,10,11,0.97);
-    opacity: 0;
-    transition: opacity 0.2s ease-in;
-    pointer-events: none;
-}
-
-.subscribe-overlay:target {
-    z-index: 2001;
-    opacity: 1;
-    pointer-events: auto;
-}
-
-.subscribe-overlay-content {
-    position: relative;
-    margin: 0 0 5vw 0;
-    padding: 4vw;
-    color: #fff;
-    text-align: center;
-}
-
-.subscribe-overlay .subscribe-form {
-    border: none;
-    color: #fff;
-    background: none;
-}
-
-.subscribe-overlay-logo {
-    position: fixed;
-    top: 23px;
-    left: 30px;
-    height: 30px;
-}
-
-.subscribe-overlay-title {
-    display: inline-block;
-    margin: 0 0 10px 0;
-    font-size: 5.2rem;
-    line-height: 1.15em;
-}
-
-.subscribe-overlay-description {
-    margin: 0 auto 50px;
-    max-width: 650px;
-    color: #fff;
-    font-family: Georgia, serif;
-    font-size: 2.4rem;
-    line-height: 1.3em;
-    font-weight: 300;
-    opacity: 0.8;
-}
-
-.subscribe-overlay form {
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    margin: 0 auto;
-    max-width: 540px;
-}
-
-.subscribe-overlay .form-group {
-    flex-grow: 1;
-}
-
-.subscribe-overlay .subscribe-email {
-    display: block;
-    padding: 14px 20px;
-    width: 100%;
-    border: none;
-    color: var(--midgrey);
-    font-size: 2rem;
-    line-height: 1em;
-    font-weight: normal;
-    letter-spacing: 0.5px;
-    user-select: text;
-    border-radius: 8px;
-    transition: border-color 0.15s linear;
-
-    -webkit-appearance: none;
-}
-
-.subscribe-email:focus {
-    outline: 0;
-    border-color: color-mod(var(--lightgrey) l(-2%));
-}
-
-.subscribe-overlay button {
-    display: inline-block;
-    margin: 0 0 0 15px;
-    padding: 0 25px;
-    height: 52px;
-    outline: none;
-    color: #fff;
-    font-size: 1.7rem;
-    line-height: 38px;
-    font-weight: 400;
-    text-align: center;
-    background: linear-gradient(
-    color-mod(var(--blue) whiteness(+7%)),
-    color-mod(var(--blue) lightness(-7%) saturation(-10%)) 60%,
-    color-mod(var(--blue) lightness(-7%) saturation(-10%)) 90%,
-    color-mod(var(--blue) lightness(-4%) saturation(-10%))
-    );
-    border-radius: 8px;
-
-    -webkit-font-smoothing: subpixel-antialiased;
-}
-
-.subscribe-overlay button:active,
-.subscribe-overlay button:focus {
-    background: color-mod(var(--blue) lightness(-9%) saturation(-10%));
-}
-
-.subscribe-overlay .loading .button-loader {
-    top: 5px;
-}
-
-@media (max-width: 500px) {
-    .subscribe-overlay button {
-        margin: 12px 0 0;
-    }
-}
-
-
 /* 11. Site Footer
 /* ---------------------------------------------------------- */
 
 .site-footer {
     position: relative;
-    padding-top: 20px;
-    padding-bottom: 60px;
+    margin: 40px 0 0 0;
+    padding: 40px 4vmin 140px;
     color: #fff;
-    background: color-mod(var(--darkgrey) l(-5%));
+    background: color-mod(var(--color-darkgrey) l(-5%));
 }
 
-.site-footer-content {
-    display: flex;
-    flex-wrap: wrap;
-    justify-content: space-between;
-    align-items: center;
+.site-footer .inner {
+    display: grid;
+    grid-gap: 40px;
+    grid-template-columns: auto 1fr auto;
     color: rgba(255,255,255,0.7);
     font-size: 1.3rem;
 }
 
-.site-footer-content a {
+.site-footer .copyright a {
+    color: #fff;
+    letter-spacing: -0.015em;
+    font-weight: 500;
+}
+
+.site-footer a {
     color: rgba(255,255,255,0.7);
 }
 
-.site-footer-content a:hover {
+.site-footer a:hover {
     color: rgba(255,255,255,1);
     text-decoration: none;
 }
 
-.site-footer-nav {
+.site-footer-nav ul {
     display: flex;
+    justify-content: center;
+    flex-wrap: wrap;
+    margin: 0 0 20px;
+    padding: 0;
+    list-style: none;
+}
+
+.site-footer-nav li {
+    display: inline-flex;
+    align-items: center;
+    padding: 0;
+    margin: 0;
+    line-height: 2em;
 }
 
 .site-footer-nav a {
     position: relative;
-    margin-left: 20px;
+    display: inline-flex;
+    align-items: center;
+    margin-left: 10px;
 }
 
-.site-footer-nav a:before {
+.site-footer-nav li:not(:first-child) a:before {
     content: "";
-    position: absolute;
-    top: 11px;
-    left: -11px;
     display: block;
     width: 2px;
     height: 2px;
+    margin: 0 10px 0 0;
     background: #fff;
     border-radius: 100%;
 }
 
-.site-footer-nav a:first-of-type:before {
-    display: none;
-}
-
-@media (max-width: 650px) {
-    .site-footer-content {
-        flex-direction: column;
+@media (max-width: 800px) {
+    .site-footer .inner {
+        max-width: 500px;
+        grid-template-columns: 1fr;
+        grid-gap: 0;
+        text-align: center;
     }
-
-    .site-footer-nav a:first-child {
-        margin-left: 0;
+    .site-footer .copyright,
+    .site-footer .copyright a {
+        color: #fff;
+        font-size: 1.5rem;
     }
 }
 
 
 /* 12. Dark Mode
 /* ---------------------------------------------------------- */
+
+/* If you prefer a dark color scheme, you can enable dark mode
+by adding the following code to the Head section of "Code Injection"
+settings inside: Ghost Admin > Settings > Advanced
+
+
+
+Or you can just edit default.hbs and add the .dark-mode class directly
+to the html tag on the very first line of the file.
+
+ */
+
+html.dark-mode body {
+    color: rgba(255, 255, 255, 0.75);
+    background: var(--color-darkmode);
+}
+
+html.dark-mode img {
+    opacity: 0.9;
+}
+
+html.dark-mode kbd {
+    background: color-mod(var(--color-darkmode) l(+5%));
+}
+
+html.dark-mode .post-card,
+html.dark-mode .post-card:hover {
+    border-bottom-color: color-mod(var(--color-darkmode) l(+8%));
+}
+
+html.dark-mode .post-card-byline-content a {
+    color: rgba(255, 255, 255, 0.75);
+}
+
+html.dark-mode .post-card-byline-content a:hover {
+    color: #fff;
+}
+
+html.dark-mode .post-card-image {
+    background: var(--color-darkmode);
+}
+
+html.dark-mode .post-card-title {
+    color: rgba(255, 255, 255, 0.85);
+}
+
+html.dark-mode .post-card-excerpt {
+    color: color-mod(var(--color-midgrey) l(+10%));
+}
+
+html.dark-mode .post-full-content {
+    background: var(--color-darkmode);
+}
+
+html.dark-mode .article-title {
+    color: rgba(255, 255, 255, 0.9);
+}
+
+html.dark-mode .article-excerpt {
+    color: color-mod(var(--color-midgrey) l(+10%));
+}
+
+html.dark-mode .post-full-image {
+    background-color: color-mod(var(--color-darkmode) l(+8%));
+}
+
+html.dark-mode .article-byline {
+    border-top-color: color-mod(var(--color-darkmode) l(+15%));
+}
+
+html.dark-mode .article-byline-meta h4 a {
+    color: rgba(255, 255, 255, 0.75);
+}
+
+html.dark-mode .article-byline-meta h4 a:hover {
+    color: #fff;
+}
+
+html.dark-mode .no-image .author-social-link a {
+    color: rgba(255, 255, 255, 0.75);
+}
+
+html.dark-mode .gh-content > [id] {
+    color: rgba(255, 255, 255, 0.9);
+}
+
+html.dark-mode .gh-content pre {
+    background: color-mod(var(--color-darkgrey) l(-8%));
+}
+
+html.dark-mode .gh-content :not(pre) > code {
+    background: color-mod(var(--color-darkgrey) l(+6%));
+    border-color: color-mod(var(--color-darkmode) l(+8%));
+    color: var(--color-wash);
+}
+
+html.dark-mode .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {
+    color: #fff;
+}
+
+html.dark-mode .gh-content strong {
+    color: #fff;
+}
+
+html.dark-mode .gh-content em {
+    color: #fff;
+}
+
+html.dark-mode .gh-content code {
+    color: #fff;
+    background: #000;
+}
+
+html.dark-mode hr {
+    border-top-color: color-mod(var(--color-darkmode) l(+8%));
+}
+
+html.dark-mode .gh-content hr:after {
+    background: color-mod(var(--color-darkmode) l(+8%));
+    box-shadow: var(--color-darkmode) 0 0 0 5px;
+}
+
+html.dark-mode figcaption {
+    color: rgba(255, 255, 255, 0.6);
+}
+
+html.dark-mode .gh-content table td:first-child {
+    background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
+}
+
+html.dark-mode .gh-content table td:last-child {
+    background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
+}
+
+html.dark-mode .gh-content table th {
+    color: rgba(255, 255, 255, 0.85);
+    background-color: color-mod(var(--color-darkmode) l(+8%));
+}
+
+html.dark-mode .gh-content table th,
+html.dark-mode .gh-content table td {
+    border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
+}
+
+html.dark-mode .gh-content input {
+    color: color-mod(var(--color-midgrey) l(-30%));
+}
+
+html.dark-mode .site-archive-header .no-image {
+    color: rgba(255, 255, 255, 0.9);
+    background: var(--color-darkmode);
+}
+
+html.dark-mode .kg-header-card.kg-style-dark {
+    background: color-mod(var(--color-darkgrey) l(-5%));
+}
+
+html.dark-mode .kg-header-card.kg-style-light {
+    background: color-mod(var(--color-darkgrey) l(+5%));
+}
+
+html.dark-mode .kg-header-card h2.kg-header-card-header,
+html.dark-mode .kg-header-card h3.kg-header-card-subheader {
+    color: #fff;
+}
+
 @media (prefers-color-scheme: dark) {
-    body {
+    html.auto-color body {
         color: rgba(255, 255, 255, 0.75);
-        background: var(--darkmode);
+        background: var(--color-darkmode);
     }
 
-    img {
+    html.auto-color img {
         opacity: 0.9;
     }
 
-    .site-header-background:before {
-        background: rgba(0,0,0,0.6);
+    html.auto-color kbd {
+        background: color-mod(var(--color-darkmode) l(+5%));
     }
 
-    .post-feed {
-        background: var(--darkmode);
+    html.auto-color .post-card,
+    html.auto-color .post-card:hover {
+        border-bottom-color: color-mod(var(--color-darkmode) l(+8%));
     }
 
-    .post-card,
-    .post-card:hover {
-        border-bottom-color: color-mod(var(--darkmode) l(+8%));
-    }
-
-    .author-profile-image {
-        background: var(--darkmode);
-    }
-
-    .post-card-byline-content a {
+    html.auto-color .post-card-byline-content a {
         color: rgba(255, 255, 255, 0.75);
     }
 
-    .post-card-byline-content a:hover {
+    html.auto-color .post-card-byline-content a:hover {
         color: #fff;
     }
 
-    .post-card-image {
-        background: var(--darkmode);
+    html.auto-color .post-card-image {
+        background: var(--color-darkmode);
     }
 
-    .post-card-title {
+    html.auto-color .post-card-title {
         color: rgba(255, 255, 255, 0.85);
     }
 
-    .post-card-excerpt {
-        color: color-mod(var(--midgrey) l(+10%));
+    html.auto-color .post-card-excerpt {
+        color: color-mod(var(--color-midgrey) l(+10%));
     }
 
-    .author-avatar,
-    .static-avatar {
-        border-color: color-mod(var(--darkgrey) l(+2%));
+    html.auto-color .post-full-content {
+        background: var(--color-darkmode);
     }
 
-    .site-main,
-    .post-template .site-main,
-    .page-template .site-main {
-        background: var(--darkmode);
-    }
-
-    .post-full-content {
-        background: var(--darkmode);
-    }
-
-    .post-full-title {
+    html.auto-color .article-title {
         color: rgba(255, 255, 255, 0.9);
     }
 
-    .post-full-custom-excerpt {
-        color: color-mod(var(--midgrey) l(+10%));
+    html.auto-color .article-excerpt {
+        color: color-mod(var(--color-midgrey) l(+10%));
     }
 
-    .post-full-image {
-        background-color: color-mod(var(--darkmode) l(+8%));
+    html.auto-color .post-full-image {
+        background-color: color-mod(var(--color-darkmode) l(+8%));
     }
 
-    .post-full-byline {
-        border-top-color: color-mod(var(--darkmode) l(+15%));
+    html.auto-color .article-byline {
+        border-top-color: color-mod(var(--color-darkmode) l(+15%));
     }
 
-    .post-full-byline-meta h4 a {
+    html.auto-color .article-byline-meta h4 a {
         color: rgba(255, 255, 255, 0.75);
     }
 
-    .post-full-byline-meta h4 a:hover {
+    html.auto-color .article-byline-meta h4 a:hover {
         color: #fff;
     }
 
-    .author-list-item .author-card {
-        background: color-mod(var(--darkmode) l(+4%));
-        box-shadow: 0 12px 26px rgba(0,0,0,0.4);
-    }
-
-    .author-list-item .author-card:before {
-        border-top-color: color-mod(var(--darkmode) l(+4%));
-    }
-
-    .no-image .author-social-link a {
+    html.auto-color .no-image .author-social-link a {
         color: rgba(255, 255, 255, 0.75);
     }
 
-    .post-full-content h1,
-    .post-full-content h2,
-    .post-full-content h3,
-    .post-full-content h4,
-    .post-full-content h6 {
+    html.auto-color .gh-content > [id] {
         color: rgba(255, 255, 255, 0.9);
     }
 
-    .post-full-content a {
-        color: #fff;
-        box-shadow: inset 0 -1px 0 #fff;
+    html.auto-color .gh-content pre {
+        background: color-mod(var(--color-darkgrey) l(-8%));
     }
 
-    .post-full-content strong {
+    html.auto-color .gh-content :not(pre) > code {
+        background: color-mod(var(--color-darkgrey) l(+6%));
+        border-color: color-mod(var(--color-darkmode) l(+8%));
+        color: var(--color-wash);
+    }
+
+    html.auto-color .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {
         color: #fff;
     }
 
-    .post-full-content em {
+    html.auto-color .gh-content strong {
         color: #fff;
     }
 
-    .post-full-content code {
+    html.auto-color .gh-content em {
+        color: #fff;
+    }
+
+    html.auto-color .gh-content code {
         color: #fff;
         background: #000;
     }
 
-    hr {
-        border-top-color: color-mod(var(--darkmode) l(+8%));
+    html.auto-color hr {
+        border-top-color: color-mod(var(--color-darkmode) l(+8%));
     }
 
-    .post-full-content hr:after {
-        background: color-mod(var(--darkmode) l(+8%));
-        box-shadow: var(--darkmode) 0 0 0 5px;
+    html.auto-color .gh-content hr:after {
+        background: color-mod(var(--color-darkmode) l(+8%));
+        box-shadow: var(--color-darkmode) 0 0 0 5px;
     }
 
-    .post-full-content figcaption {
+    html.auto-color figcaption {
         color: rgba(255, 255, 255, 0.6);
     }
 
-    .post-full-content table td:first-child {
-        background-image: linear-gradient(to right, var(--darkmode) 50%, color-mod(var(--darkmode) a(0%)) 100%);
+    html.auto-color .gh-content table td:first-child {
+        background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
     }
 
-    .post-full-content table td:last-child {
-        background-image: linear-gradient(to left, var(--darkmode) 50%, color-mod(var(--darkmode) a(0%)) 100%);
+    html.auto-color .gh-content table td:last-child {
+        background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
     }
 
-    .post-full-content table th {
+    html.auto-color .gh-content table th {
         color: rgba(255, 255, 255, 0.85);
-        background-color: color-mod(var(--darkmode) l(+8%));
+        background-color: color-mod(var(--color-darkmode) l(+8%));
     }
 
-    .post-full-content table th,
-    .post-full-content table td {
-        border: color-mod(var(--darkmode) l(+8%)) 1px solid;
+    html.auto-color .gh-content table th,
+    html.auto-color .gh-content table td {
+        border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
     }
 
-    .post-full-content .kg-bookmark-container,
-    .post-full-content .kg-bookmark-container:hover {
-        color: rgba(255, 255, 255, 0.75);
-        box-shadow: 0 0 1px rgba(255,255,255,0.9);
+    html.auto-color .gh-content input {
+        color: color-mod(var(--color-midgrey) l(-30%));
     }
 
-    .post-full-content input {
-        color: color-mod(var(--midgrey) l(-30%));
+    html.auto-color .site-archive-header .no-image {
+        color: rgba(255, 255, 255, 0.9);
+        background: var(--color-darkmode);
     }
 
-    .kg-bookmark-title {
+    html.auto-color .kg-header-card.kg-style-dark {
+        background: color-mod(var(--color-darkgrey) l(-5%));
+    }
+
+    html.auto-color .kg-header-card.kg-style-light {
+        background: color-mod(var(--color-darkgrey) l(+5%));
+    }
+
+    html.auto-color .kg-header-card h2.kg-header-card-header,
+    html.auto-color .kg-header-card h3.kg-header-card-subheader {
         color: #fff;
     }
-
-    .kg-bookmark-description {
-        color: rgba(255, 255, 255, 0.75);
-    }
-
-    .kg-bookmark-metadata {
-        color: rgba(255, 255, 255, 0.75);
-    }
-
-    .site-archive-header .no-image {
-        color: rgba(255, 255, 255, 0.9);
-        background: var(--darkmode);
-    }
-
-    .site-archive-header .no-image .site-header-content {
-        border-bottom-color: color-mod(var(--darkmode) l(+15%));
-    }
-
-    .site-header-content .author-profile-image {
-        box-shadow: 0 0 0 6px hsla(0,0%,100%,0.04);
-    }
-
-    .subscribe-form {
-        border: none;
-        background: linear-gradient(color-mod(var(--darkmode) l(-6%)), color-mod(var(--darkmode) l(-3%)));
-    }
-
-    .subscribe-form-title {
-        color: rgba(255, 255, 255, 0.9);
-    }
-
-    .subscribe-form p {
-        color: rgba(255, 255, 255, 0.7);
-    }
-
-    .subscribe-email {
-        border-color: color-mod(var(--darkmode) l(+6%));
-        color: rgba(255, 255, 255, 0.9);
-        background: color-mod(var(--darkmode) l(+3%));
-    }
-
-    .subscribe-email:focus {
-        border-color: color-mod(var(--darkmode) l(+25%));
-    }
-
-    .subscribe-form button {
-        opacity: 0.9;
-    }
-
-    .subscribe-form .invalid .message-error,
-    .subscribe-form .error .message-error {
-        color: color-mod(var(--red) l(+5%) s(-5%));
-    }
-
-    .subscribe-form .success .message-success {
-        color: color-mod(var(--green) l(+5%) s(-5%));
-    }
 }
+
+/*
+
+Hey! You reached the end.
+
+Hope you enjoyed this CSS file, if you have any suggestions
+for improvements that might be useful for everyone who uses
+this theme, you can find the open source repository for it
+here: https://github.com/tryghost/casper
+
+Or, if you've just scrolled all the way to the bottom of the
+file to add some of your own styles. Well, you've come to
+the right place. Onward!
+
+ */
diff --git a/assets/js/gallery-card.js b/assets/js/gallery-card.js
deleted file mode 100644
index fa630cc..0000000
--- a/assets/js/gallery-card.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* eslint-env browser */
-
-/**
- * Gallery card support
- * Used on any individual post/page
- *
- * Detects when a gallery card has been used and applies sizing to make sure
- * the display matches what is seen in the editor.
- */
-
-(function (window, document) {
-    var resizeImagesInGalleries = function resizeImagesInGalleries() {
-        var images = document.querySelectorAll('.kg-gallery-image img');
-        images.forEach(function (image) {
-            var container = image.closest('.kg-gallery-image');
-            var width = image.attributes.width.value;
-            var height = image.attributes.height.value;
-            var ratio = width / height;
-            container.style.flex = ratio + ' 1 0%';
-        });
-    };
-
-    document.addEventListener('DOMContentLoaded', resizeImagesInGalleries);
-})(window, document);
diff --git a/assets/js/infinite-scroll.js b/assets/js/infinite-scroll.js
index dd34d41..3e9bd7a 100644
--- a/assets/js/infinite-scroll.js
+++ b/assets/js/infinite-scroll.js
@@ -43,7 +43,7 @@
         }
 
         // append contents
-        var postElements = this.response.querySelectorAll('.post-card');
+        var postElements = this.response.querySelectorAll('article.post-card');
         postElements.forEach(function (item) {
             // document.importNode is important, without it the item's owner
             // document will be different which can break resizing of
diff --git a/assets/js/sticky-nav-title.js b/assets/js/sticky-nav-title.js
deleted file mode 100644
index 6e14bb9..0000000
--- a/assets/js/sticky-nav-title.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/* eslint-env browser */
-
-/**
- * Nav/Title replacement
- * Used on invividual post pages, displays the post title in place of the nav
- * bar when scrolling past the title
- *
- * Usage:
- * ```
- * Casper.stickyTitle({
- *     navSelector: '.site-nav-main',
- *     titleSelector: '.post-full-title',
- *     activeClass: 'nav-post-title-active'
- * });
- * ```
- */
-
-(function (window, document) {
-    // set up Casper as a global object
-    if (!window.Casper) {
-        window.Casper = {};
-    }
-
-    window.Casper.stickyNavTitle = function stickyNavTitle(options) {
-        var nav = document.querySelector(options.navSelector);
-        var title = document.querySelector(options.titleSelector);
-
-        var lastScrollY = window.scrollY;
-        var ticking = false;
-
-        function onScroll() {
-            lastScrollY = window.scrollY;
-            requestTick();
-        }
-
-        function requestTick() {
-            if (!ticking) {
-                requestAnimationFrame(update);
-            }
-            ticking = true;
-        }
-
-        function update() {
-            var trigger = title.getBoundingClientRect().top + window.scrollY;
-            var triggerOffset = title.offsetHeight + 35;
-
-            // show/hide post title
-            if (lastScrollY >= trigger + triggerOffset) {
-                nav.classList.add(options.activeClass);
-            } else {
-                nav.classList.remove(options.activeClass);
-            }
-
-            ticking = false;
-        }
-
-        window.addEventListener('scroll', onScroll, {passive: true});
-
-        update();
-    };
-})(window, document);
diff --git a/author.hbs b/author.hbs
index 0cc8196..486c64f 100644
--- a/author.hbs
+++ b/author.hbs
@@ -1,61 +1,57 @@
 {{!< default}}
 {{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}}
 
-{{#author}}
-{{!-- Everything inside the #author tags pulls data from the author --}}
 
-
-
- {{> site-header}} - {{> header-background background=cover_image}} {{!--Special header-image.hbs partial to generate the background image--}} -
-
- {{#if profile_image}} - {{name}} - {{else}} - {{> "icons/avatar"}} - {{/if}} -
-

{{name}}

- {{#if bio}} -

{{bio}}

- {{/if}} -
- {{#if location}} -
{{location}}
- {{/if}} -
- {{plural ../pagination.total empty=(t "No posts") singular=(t "1 post") plural=(t "% posts")}} -
- {{#if website}} - Website - {{/if}} - {{#if twitter}} - Twitter - {{/if}} - {{#if facebook}} - Facebook - {{/if}} -
-
-
-
- -
-{{/author}} - -{{!-- The main content area --}} -
+
+
+ {{#author}} + {{!-- Everything inside the #author tags pulls data from the author --}} + +
+ + {{#if profile_image}} + {{name}} + {{else}} + {{> "icons/avatar"}} + {{/if}} + +

{{name}}

+

+ {{#if bio}} + {{bio}} + {{else}} + {{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}} published + {{/if}} +

+ +
+ {{#if location}} +
📍 {{location}}
+ {{/if}} + {{#if website}} + {{website}} + {{/if}} + {{#if twitter}} + {{twitter_url}} + {{/if}} + {{#if facebook}} + {{facebook_url}} + {{/if}} +
+ +
+ + {{/author}} +
+
{{#foreach posts}} - {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}} {{> "post-card"}} - {{/foreach}}
-
+ diff --git a/config.example.json b/config.example.json deleted file mode 100644 index d79d2e5..0000000 --- a/config.example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "github": { - "token": "" - } -} diff --git a/default.hbs b/default.hbs index ed8d269..c7a57fc 100644 --- a/default.hbs +++ b/default.hbs @@ -1,139 +1,115 @@ - + - {{!-- Document Settings --}} + {{!-- Basic meta - advanced meta is output with {ghost_head} below --}} + {{meta_title}} - - {{!-- Base Meta --}} - {{meta_title}} - {{!-- Styles'n'Scripts --}} + + + {{!-- Theme assets - use the {asset} helper to reference styles & scripts, + this will take care of caching and cache-busting automatically --}} - {{!-- This tag outputs SEO meta+structured data and other important settings --}} + {{!-- This tag outputs all your advanced SEO meta, structured data, and other important settings, + it should always be the last tag before the closing head tag --}} {{ghost_head}} - -
+ +
- {{!-- All the main content gets inserted here, index.hbs, post.hbs, etc --}} +
+ +
+ +
+ {{!-- All other templates get inserted here, index.hbs, post.hbs, etc --}} {{{body}}} - - {{!-- The footer at the very bottom of the screen --}} - -
- {{!-- The big email subscribe modal content --}} - {{#if @labs.members}} - - - - +{{!-- /.viewport --}} - {{!-- Scripts for Members subscription --}} - + + - $(document).ready(function () { - if (action == 'subscribe' && (success === null || success === 'true')) { - $('body').addClass('subscribe-success'); - } - - if (action == 'subscribe' && success === 'false') { - $('body').addClass('subscribe-failure'); - } - - $('.subscribe-notification .subscribe-close-button').click(function () { - $('.subscribe-notification').addClass('close'); - }); - - // Reset form on opening subscrion overlay - $('.subscribe-button').click(function() { - $('.subscribe-overlay form').removeClass(); - $('.subscribe-email').val(''); - }); - }); - - - {{!-- The #block helper will pull in data from the #contentFor other template files. In this case, there's some JavaScript which we only want to use in post.hbs, but it needs to be included down here, after jQuery has already loaded. --}} - {{{block "scripts"}}} - - {{!-- Ghost outputs important scripts and data with this tag - it should always be the very last thing before the closing body tag --}} - {{ghost_foot}} +{{!-- Ghost outputs required functional scripts with this tag - it should always be the last thing before the closing body tag --}} +{{ghost_foot}} diff --git a/error-404.hbs b/error-404.hbs index cc723e4..f810346 100644 --- a/error-404.hbs +++ b/error-404.hbs @@ -1,30 +1,37 @@ +{{!< default}} + {{!-- -This error template is used for all 404 errors, which might occur on your site. -It's a good idea to keep this template as minimal as possible in terms of both file size and complexity. + +There are two error files in this theme, one for 404s and one for all other errors. +This file is the former, and handles all 404 Page Not Found errors. + +The 404 error is the most common error that a visitor might see, for example when +following a broken link + +Keep this template as lightweight as you can! + --}} -{{!< default}} -{{!-- The tag above means: insert everything in this file -into the {body} of the default.hbs template --}} - - - -
+

{{statusCode}}

{{message}}

{{t "Go to the front page"}} →
+
+
- {{#get "posts" limit="3" include="authors,tags"}} -
- {{#foreach posts}} - {{> "post-card"}} +{{!-- Given that people landing on this page didn't find what they +were looking for, let's give them some alternative stuff to read. --}} +
-
\ No newline at end of file + \ No newline at end of file diff --git a/error.hbs b/error.hbs index 0536538..34fc7f3 100644 --- a/error.hbs +++ b/error.hbs @@ -1,7 +1,15 @@ {{!-- -This error template is used for all 400/500 errors, except 404, which might occur on your site. -It's a good idea to keep this template as minimal as possible in terms of both file size and complexity. -You'll notice that we *don't* use any JavaScript, or ghost_head / ghost_foot in this file. + +There are two error files in this theme, one for 404s and one for all other errors. +This file is the latter, and handle all 400/500 errors that might occur. + +Because 500 errors in particular usuall happen when a server is struggling, this +template is as simple as possible. No template dependencies, no JS, no API calls. +This is to prevent rendering the error-page itself compounding the issue causing +the error in the first place. + +Keep this template as lightweight as you can! + --}} @@ -32,7 +40,7 @@ You'll notice that we *don't* use any JavaScript, or ghost_head / ghost_foot in
-
+
diff --git a/gulpfile.js b/gulpfile.js index 09f5b1b..18fca40 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -80,7 +80,9 @@ function zipper(done) { '**', '!node_modules', '!node_modules/**', '!dist', '!dist/**', - '!yarn-error.log' + '!yarn-error.log', + '!yarn.lock', + '!gulpfile.js' ]), zip(filename), dest('dist/') @@ -96,10 +98,10 @@ exports.build = build; exports.zip = series(build, zipper); exports.default = series(build, serve, watcher); -exports.release = () => { +exports.release = async () => { // @NOTE: https://yarnpkg.com/lang/en/docs/cli/version/ // require(./package.json) can run into caching issues, this re-reads from file everytime on release - var packageJSON = JSON.parse(fs.readFileSync('./package.json')); + let packageJSON = JSON.parse(fs.readFileSync('./package.json')); const newVersion = packageJSON.version; if (!newVersion || newVersion === '') { @@ -109,45 +111,36 @@ exports.release = () => { console.log(`\nCreating release for ${newVersion}...`); - let config; - try { - config = require('./config'); - } catch (err) { - config = null; - } + const githubToken = process.env.GST_TOKEN; - if (!config || !config.github || !config.github.token) { - console.log('Please copy config.example.json and configure Github token.'); + if (!githubToken) { + console.log('Please configure your environment with a GitHub token located in GST_TOKEN'); return; } - let compatibleWithGhost; + try { + const result = await inquirer.prompt([{ + type: 'input', + name: 'compatibleWithGhost', + message: 'Which version of Ghost is it compatible with?', + default: '4.0.0' + }]); - return inquirer.prompt([{ - type: 'input', - name: 'compatibleWithGhost', - message: 'Which version of Ghost is it compatible with?', - default: '3.0.0' - }]) - .then(result => { - compatibleWithGhost = result.compatibleWithGhost; - return Promise.resolve(); - }) - .then(() => releaseUtils.releases.get({ - userAgent: 'Casper', - uri: `https://api.github.com/repos/${REPO_READONLY}/releases` - })) - .then((response) => { - if (!response || !response.length) { + const compatibleWithGhost = result.compatibleWithGhost; + + const releasesResponse = await releaseUtils.releases.get({ + userAgent: 'Casper', + uri: `https://api.github.com/repos/${REPO_READONLY}/releases` + }); + + if (!releasesResponse || !releasesResponse) { console.log('No releases found. Skipping...'); return; } - let previousVersion = response[0].tag_name || response[0].name; + let previousVersion = releasesResponse[0].tag_name || releasesResponse[0].name; console.log(`Previous version: ${previousVersion}`); - return Promise.resolve(previousVersion); - }) - .then((previousVersion) => { + const changelog = new releaseUtils.Changelog({ changelogPath: CHANGELOG_PATH, folder: path.join(process.cwd(), '.') @@ -161,27 +154,22 @@ exports.release = () => { .sort() .clean(); - return Promise.resolve(); - }) - .then(() => releaseUtils.releases.create({ - draft: true, - preRelease: false, - tagName: newVersion, - releaseName: newVersion, - userAgent: 'Casper', - uri: `https://api.github.com/repos/${REPO}/releases`, - github: { - token: config.github.token - }, - content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`], - changelogPath: CHANGELOG_PATH - })) - .then((response) => { - console.log(`\nRelease draft generated: ${response.releaseUrl}\n`); - return Promise.resolve(); - }) - .catch((err) => { + const newReleaseResponse = await releaseUtils.releases.create({ + draft: true, + preRelease: false, + tagName: 'v' + newVersion, + releaseName: newVersion, + userAgent: 'Casper', + uri: `https://api.github.com/repos/${REPO}/releases`, + github: { + token: githubToken + }, + content: [`**Compatible with Ghost ≥ ${compatibleWithGhost}**\n\n`], + changelogPath: CHANGELOG_PATH + }); + console.log(`\nRelease draft generated: ${newReleaseResponse.releaseUrl}\n`); + } catch (err) { console.error(err); process.exit(1); - }); + } }; diff --git a/index.hbs b/index.hbs index 8b85db8..c263428 100644 --- a/index.hbs +++ b/index.hbs @@ -2,29 +2,37 @@ {{!-- The tag above means: insert everything in this file into the {body} of the default.hbs template --}} -
- {{> header-background background=@site.cover_image}} {{!--Special header-image.hbs partial to generate the background image--}} -
- {{> "site-nav"}} -
-

- {{#if @site.logo}} - - {{else}} - {{@site.title}} - {{/if}} -

-

{{@site.description}}

-
-
+{{#match @custom.publication_cover_style "!=" "None"}} +
+ {{#if @site.cover_image}} + {{!-- This is a responsive image, it loads different sizes depending on device + https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} + + {{/if}} +

+ {{#if @site.logo}} + + {{else}} + {{@site.title}} + {{/if}} +

+

{{@site.description}}

-
+{{/match}} {{!-- The main content area --}}
-
+
{{#foreach posts}} {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}} @@ -35,64 +43,3 @@ into the {body} of the default.hbs template --}}
- -{{> site-header}} - -{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} -{{#contentFor "scripts"}} - -{{/contentFor}} \ No newline at end of file diff --git a/package.json b/package.json index 5ea917e..22b2ab0 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,10 @@ "name": "casper-i18n", "description": "The same casper theme, but with localization support", "demo": "https://demo.ghost.io", - "version": "3.1.2", + "version": "4.7.3", "engines": { - "ghost": ">=3.0.0", - "ghost-api": "v3" + "ghost": ">=4.0.0", + "ghost-api": "v4" }, "license": "MIT", "screenshots": { @@ -25,7 +25,7 @@ "author": { "name": "Ghost Foundation", "email": "hello@ghost.org", - "url": "https://ghost.org" + "url": "https://ghost.org/" }, "gpm": { "type": "theme", @@ -46,19 +46,19 @@ "bugs": "https://github.com/TryGhost/Casper/issues", "contributors": "https://github.com/TryGhost/Casper/graphs/contributors", "devDependencies": { - "@tryghost/release-utils": "0.6.8", - "autoprefixer": "10.0.4", - "beeper": "2.0.0", + "@tryghost/release-utils": "0.6.12", + "autoprefixer": "10.2.5", + "beeper": "2.1.0", "cssnano": "4.1.10", - "gscan": "3.6.0", + "gscan": "4.22.0", "gulp": "4.0.2", "gulp-concat": "2.6.1", "gulp-livereload": "4.0.2", "gulp-postcss": "9.0.0", "gulp-uglify": "3.0.2", - "gulp-zip": "5.0.2", - "inquirer": "7.3.3", - "postcss": "8.1.10", + "gulp-zip": "5.1.0", + "inquirer": "8.0.0", + "postcss": "8.2.8", "postcss-color-mod-function": "3.0.3", "postcss-easy-import": "3.0.0", "pump": "3.0.0" @@ -87,6 +87,101 @@ "xl": { "width": 2000 } + }, + "card_assets": true, + "custom": { + "title_font": { + "type": "select", + "options": [ + "Modern sans-serif", + "Elegant serif" + ], + "default": "Modern sans-serif" + }, + "body_font": { + "type": "select", + "options": [ + "Modern sans-serif", + "Elegant serif" + ], + "default": "Elegant serif" + }, + "publication_cover_style": { + "type": "select", + "options": [ + "None", + "Medium", + "Large" + ], + "default": "Medium", + "group": "homepage" + }, + "feed_layout": { + "type": "select", + "options": [ + "Dynamic grid", + "Simple grid", + "List" + ], + "default": "Dynamic grid", + "group": "homepage" + }, + "color_scheme": { + "type": "select", + "options": [ + "Light", + "Dark", + "Auto" + ], + "default": "Light" + }, + "header_button_background": { + "type": "color", + "default": "#ffffff" + }, + "header_button_text_color": { + "type": "select", + "options": [ + "Light", + "Dark" + ], + "default": "Dark" + }, + "post_image_width": { + "type": "select", + "options": [ + "Wide", + "Full", + "Small" + ], + "default": "Wide", + "group": "post" + }, + "email_signup_for_logged_out_visitors": { + "type": "select", + "options": [ + "Footer", + "Bottom of post", + "None" + ], + "default": "Footer", + "group": "post" + }, + "email_signup_text": { + "type": "text", + "default": "Sign up for more like this.", + "group": "post" + }, + "show_recent_posts": { + "type": "boolean", + "default": true, + "group": "post" + } } + }, + "renovate": { + "extends": [ + "@tryghost:theme" + ] } } diff --git a/page.hbs b/page.hbs index 579ed18..526a41d 100644 --- a/page.hbs +++ b/page.hbs @@ -1,30 +1,18 @@ {{!< default}} + {{!-- The tag above means: insert everything in this file -into the {body} of the default.hbs template --}} +into the {body} tag of the default.hbs template --}} -{{!-- The big featured header, it uses blog cover image as a BG if available --}} - -{{!-- Everything inside the #post tags pulls data from the post --}} {{#post}} +{{!-- Everything inside the #post block pulls data from the page --}} -
-
- -
- -
-

{{title}}

-
+
+
+
{{#if feature_image}} -
+
{{!-- This is a responsive image, it loads different sizes depending on device https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} {{title}} + {{#if feature_image_caption}} +
{{feature_image_caption}}
+ {{/if}}
{{/if}} +
-
-
- {{content}} -
-
+
-
+

{{title}}

-
+ {{content}} + +
+ +
-{{/post}} - -{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} -{{#contentFor "scripts"}} - -{{/contentFor}} +{{/post}} \ No newline at end of file diff --git a/partials/header-background.hbs b/partials/header-background.hbs deleted file mode 100644 index 9d78ab6..0000000 --- a/partials/header-background.hbs +++ /dev/null @@ -1,47 +0,0 @@ -{{!-- -Wow what the hell is going on in here even? - -Ok so, several templates use this big header with a giant BG image. Nice idea, but big images -have a heavy impact on performance, so it's a good idea to make them responsive. Because we -can only get the image dynamically using Handlebars, and we can only set the image to properly -be a background image using CSS, we end up with a handful of inline styles. - -If the template in question has a background image, then we render responsive image styles -for it, and apply those styles to the
tag. Else, we just output a
tag -with a `no-image` class so we can style it accordingly. ---}} - -{{#if background}} - - -
- -{{else}} - -
- -{{/if}} \ No newline at end of file diff --git a/partials/post-card.hbs b/partials/post-card.hbs index f42d88b..fb897a3 100644 --- a/partials/post-card.hbs +++ b/partials/post-card.hbs @@ -1,4 +1,7 @@ -
+{{!-- This is a partial file used to generate a post "card" +which templates loop over to generate a list of posts. --}} + +
{{#if feature_image}} @@ -9,10 +12,10 @@ {{img_url feature_image size="m"}} 600w, {{img_url feature_image size="l"}} 1000w, {{img_url feature_image size="xl"}} 2000w" - sizes="(max-width: 1000px) 400px, 700px" - loading="lazy" + sizes="(max-width: 1000px) 400px, 800px" src="{{img_url feature_image size="m"}}" - alt="{{title}}" + alt="{{#if feature_image_alt}}{{feature_image_alt}}{{else}}{{title}}{{/if}}" + loading="lazy" /> {{/if}} @@ -20,7 +23,6 @@
-
{{#if primary_tag}} {{#primary_tag}} @@ -29,29 +31,18 @@ {{/if}}

{{title}}

- -
- {{#if feature_image}} -

{{excerpt words="30"}}

- {{else}} -

{{excerpt words="44"}}

- {{/if}} -
- +
+

{{excerpt}}

+
    {{#foreach authors}}
  • - -
    - {{name}} -
    - {{#if profile_image}} - {{name}} + {{name}} {{else}} {{> "icons/avatar"}} @@ -60,8 +51,8 @@ {{/foreach}}
diff --git a/partials/site-header.hbs b/partials/site-header.hbs deleted file mode 100644 index 11e06f2..0000000 --- a/partials/site-header.hbs +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/post.hbs b/post.hbs index 36f929c..364ea50 100644 --- a/post.hbs +++ b/post.hbs @@ -1,92 +1,56 @@ {{!< default}} {{!-- The tag above means: insert everything in this file -into the {body} of the default.hbs template --}} +into the {body} tag of the default.hbs template --}} - -{{!-- Everything inside the #post tags pulls data from the post --}} {{#post}} +{{!-- Everything inside the #post block pulls data from the post --}} -
-
+
+
-
+
-
+ {{#if primary_tag}} + + {{/if}} - {{#if primary_tag}} -
- {{#primary_tag}} - {{name}} - {{/primary_tag}} +

{{title}}

+ + {{#if custom_excerpt}} +

{{custom_excerpt}}

+ {{/if}} + +
+
{{#if feature_image}} -
+
{{!-- This is a responsive image, it loads different sizes depending on device https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} {{title}} + {{#if feature_image_caption}} +
{{feature_image_caption}}
+ {{/if}}
{{/if}} +
-
-
- {{content}} -
-
+
+ {{content}} +
- {{!-- Email subscribe form at the bottom of the page --}} - {{#if @labs.members}} - {{> subscribe-form}} - {{/if}} + {{!-- +
+ If you want to embed comments, this is a good place to paste your code! +
+ --}} - {{!-- -
- If you want to embed comments, this is a good place to do it! -
- --}} - - - -
+ -{{!-- Links to Previous/Next posts --}} - + +{{/if}}{{/unless}} +{{/match}} -{{/post}} -{{!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs --}} -{{#contentFor "scripts"}} - -{{/contentFor}} +{{/post}} \ No newline at end of file diff --git a/renovate.json b/renovate.json deleted file mode 100644 index de57c47..0000000 --- a/renovate.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": [ - "@tryghost:theme" - ] -} diff --git a/tag.hbs b/tag.hbs index 6473129..a5035b4 100644 --- a/tag.hbs +++ b/tag.hbs @@ -1,32 +1,57 @@ {{!< default}} {{!-- The tag above means - insert everything in this file into the {body} of the default.hbs template --}} -{{#tag}} -
- {{> site-header}} - {{> header-background background=feature_image}} {{!--Special header-image.hbs partial to generate the background image--}} -
-

{{name}}

-

- {{#if description}} - {{description}} - {{else}} - {{plural ../pagination.total empty=(t "A collection of posts") singular=(t "A collection of 1 post") plural=(t "A collection of % posts")}} - {{/if}} -

-
- -
-{{/tag}} -{{!-- The main content area --}}
+ + {{#tag}} +
+ {{#if feature_image}} +
+ {{!-- This is a responsive image, it loads different sizes depending on device + https://medium.freecodecamp.org/a-guide-to-responsive-images-with-ready-to-use-templates-c400bd65c433 --}} + {{title}} +
+ {{/if}} +
+
+
+
Tagged
+

{{name}}

+
+
+

+ {{#if description}} + {{description}} + {{else}} + A collection of {{plural ../pagination.total empty='zero posts' singular='% post' plural='% posts'}} + {{/if}} +

+
+
+
{{!--/.post-card-content--}} + +
+ {{/tag}} + {{#foreach posts}} + {{!-- The tag below includes the markup for each post - partials/post-card.hbs --}} {{> "post-card"}} + {{/foreach}} +
diff --git a/yarn.lock b/yarn.lock index 0261a45..6e2de8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,108 +7,198 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@sentry/core@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.26.0.tgz#9b5fe4de8a869d733ebcc77f5ec9c619f8717a51" - integrity sha512-Ubrw7K52orTVsaxpz8Su40FPXugKipoQC+zPrXcH+JIMB+o18kutF81Ae4WzuUqLfP7YB91eAlRrP608zw0EXA== +"@elastic/elasticsearch@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.15.0.tgz#4b009a87e0b11b8cfd2e4f378f0292574bc17300" + integrity sha512-FUKvjV2IKtIiWsvBy7D+wLbSEONsmNR15RRN7P/Sb30g4ObZRHH2qGOP5PPnzxdntEkzZ8HzY7nKKXFS+3Du1g== dependencies: - "@sentry/hub" "5.26.0" - "@sentry/minimal" "5.26.0" - "@sentry/types" "5.26.0" - "@sentry/utils" "5.26.0" + debug "^4.3.1" + hpagent "^0.1.1" + ms "^2.1.3" + secure-json-parse "^2.4.0" + +"@sentry/core@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.16.1.tgz#d9f7a75f641acaddf21b6aafa7a32e142f68f17c" + integrity sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw== + dependencies: + "@sentry/hub" "6.16.1" + "@sentry/minimal" "6.16.1" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" tslib "^1.9.3" -"@sentry/hub@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.26.0.tgz#b2bbd8128cd5915f2ee59cbc29fff30272d74ec5" - integrity sha512-lAYeWvvhGYS6eQ5d0VEojw0juxGc3v4aAu8VLvMKWcZ1jXD13Bhc46u9Nvf4qAY6BAQsJDQcpEZLpzJu1bk1Qw== +"@sentry/hub@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.16.1.tgz#526e19db51f4412da8634734044c605b936a7b80" + integrity sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg== dependencies: - "@sentry/types" "5.26.0" - "@sentry/utils" "5.26.0" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" tslib "^1.9.3" -"@sentry/minimal@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.26.0.tgz#851dea3644153ed3ac4837fa8ed5661d94e7a313" - integrity sha512-mdFo3FYaI1W3KEd8EHATYx8mDOZIxeoUhcBLlH7Iej6rKvdM7p8GoECrmHPU1l6sCCPtBuz66QT5YeXc7WILsA== +"@sentry/minimal@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.16.1.tgz#6a9506a92623d2ff1fc17d60989688323326772e" + integrity sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA== dependencies: - "@sentry/hub" "5.26.0" - "@sentry/types" "5.26.0" + "@sentry/hub" "6.16.1" + "@sentry/types" "6.16.1" tslib "^1.9.3" -"@sentry/node@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.26.0.tgz#d3ed5856bc5f30b13435be4c569d6c72746cf286" - integrity sha512-BuN9c84f8MxGhYZl+JgVsORh3GiDmuyG9QjawVQ2fmJKVxQ+fcNvde/wq5z7jEca4Z8FrNLa+DHb4c8Fl8gz8g== +"@sentry/node@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.16.1.tgz#d92916da3e95d23e1ada274e97d6bf369e74ac51" + integrity sha512-SeDDoug2kUxeF1D7JGPa3h5EXxKtmA01mITBPYx5xbJ0sMksnv5I5bC1SJ8arRRzq6+W1C4IEeDBQtrVCk6ixA== dependencies: - "@sentry/core" "5.26.0" - "@sentry/hub" "5.26.0" - "@sentry/tracing" "5.26.0" - "@sentry/types" "5.26.0" - "@sentry/utils" "5.26.0" + "@sentry/core" "6.16.1" + "@sentry/hub" "6.16.1" + "@sentry/tracing" "6.16.1" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" cookie "^0.4.1" https-proxy-agent "^5.0.0" lru_map "^0.3.3" tslib "^1.9.3" -"@sentry/tracing@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.26.0.tgz#33ee0426da14836e54e7b9a8838e4d7d0cb14b70" - integrity sha512-N9qWGmKrFJYKFTZBe8zVT3Qiju0+9bbNJuyun69T+fqP3PCDh+aRlRiP+OKTJyeCZjNG5HIvIlU8wTVUDoYfjQ== +"@sentry/tracing@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.16.1.tgz#32fba3e07748e9a955055afd559a65996acb7d71" + integrity sha512-MPSbqXX59P+OEeST+U2V/8Hu/8QjpTUxTNeNyTHWIbbchdcMMjDbXTS3etCgajZR6Ro+DHElOz5cdSxH6IBGlA== dependencies: - "@sentry/hub" "5.26.0" - "@sentry/minimal" "5.26.0" - "@sentry/types" "5.26.0" - "@sentry/utils" "5.26.0" + "@sentry/hub" "6.16.1" + "@sentry/minimal" "6.16.1" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" tslib "^1.9.3" -"@sentry/types@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.26.0.tgz#b0cbacb0b24cd86620fb296b46cf7277bb004a3e" - integrity sha512-ugpa1ePOhK55pjsyutAsa2tiJVQEyGYCaOXzaheg/3+EvhMdoW+owiZ8wupfvPhtZFIU3+FPOVz0d5k9K5d1rw== +"@sentry/types@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.16.1.tgz#4917607115b30315757c2cf84f80bac5100b8ac0" + integrity sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ== -"@sentry/utils@5.26.0": - version "5.26.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.26.0.tgz#09a3d01d91747f38f796cafeb24f8fd86e4fa05f" - integrity sha512-F2gnHIAWbjiowcAgxz3VpKxY/NQ39NTujEd/NPnRTWlRynLFg3bAV+UvZFXljhYJeN3b/zRlScNDcpCWTrtZGw== +"@sentry/utils@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.16.1.tgz#1b9e14c2831b6e8b816f7021b9876133bf2be008" + integrity sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw== dependencies: - "@sentry/types" "5.26.0" + "@sentry/types" "6.16.1" tslib "^1.9.3" -"@tryghost/pretty-cli@1.2.10": - version "1.2.10" - resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.10.tgz#0ef57f4fea794cda7a612b2b6225612f13028195" - integrity sha512-sjX6QlLTxBxqoWA13p0WR4eRgCgCRajBTYVgcTewzMocf3jnZDF/7czxArxPjbJB3weT/B+BJZ0hwre/4hLqRQ== +"@tryghost/bunyan-rotating-filestream@^0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@tryghost/bunyan-rotating-filestream/-/bunyan-rotating-filestream-0.0.7.tgz#3957de91e4e9b58999f0bbe19242080543dcfc4a" + integrity sha512-dswM+dxG8J7WpVoSjzAdoWXqqB5Dg0C2T7Zh6eoUvl5hkA8yWWJi/fS4jNXlHF700lWQ0g8/t+leJ7SGSWd+aw== dependencies: - chalk "4.1.0" - sywac "1.3.0" + long-timeout "^0.1.1" -"@tryghost/release-utils@0.6.8": - version "0.6.8" - resolved "https://registry.yarnpkg.com/@tryghost/release-utils/-/release-utils-0.6.8.tgz#0b2104fa5c348a3c04282460200ef0557cf6bb38" - integrity sha512-K4fUkxDXRq7RZE0w3v5HDKf7BCSFYZY1ICDwgvVnot210o1QnPp4jJKklsHKWwnQAi85hFByIwWPwU7DXHEIrA== +"@tryghost/config@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@tryghost/config/-/config-0.2.2.tgz#be6070156f47ff5097d73068de0025d96e0b13ac" + integrity sha512-71RqaF0f1j8u3NenF/MWDzRYnkY3jj0AsaO1W57hLOL8BGxaqv6uu4LgVmOSp5ZoOb/F1VmjF45An4pk8/cmNA== + dependencies: + "@tryghost/root-utils" "^0.3.8" + nconf "^0.11.3" + +"@tryghost/debug@0.1.10", "@tryghost/debug@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@tryghost/debug/-/debug-0.1.10.tgz#26d67921c3edd562c7d2bee136d04faefa99bb3c" + integrity sha512-OihGnKm/lGVB5wNDyykev7IbufmtxTGmiDMAttaG4d5jz1eK9f/1VQ9Zq+lIs0sIG3EM6q9J1iQq0BCCGGRGfg== + dependencies: + "@tryghost/root-utils" "^0.3.8" + debug "^4.3.1" + +"@tryghost/elasticsearch@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@tryghost/elasticsearch/-/elasticsearch-1.0.1.tgz#2e258b92466b10bc24506348423953eca27ca459" + integrity sha512-dDkye1+5xA5v5UXiPsis/ppupAfTs6kLbRXyRfV9e/eEemvysPrUy5migWSdFj3K8JcZ397LZ9Kz6l6cuXfhQg== + dependencies: + "@elastic/elasticsearch" "^7.15.0" + "@tryghost/debug" "^0.1.10" + +"@tryghost/ignition-errors@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@tryghost/ignition-errors/-/ignition-errors-0.1.8.tgz#6d4c4d4e02d32403ca1e574eaa91b3c0d138d6f6" + integrity sha512-4KYU+kDXZyP7tmzyHiUkfDy9RWxKAtA/6xTGdxYHurE5ZlT++cDDfdUtF0v3308GGUzKlBzRc3jmLjDYpngcBQ== + dependencies: + lodash "^4.17.21" + uuid "^8.3.2" + +"@tryghost/logging@2.0.1", "@tryghost/logging@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@tryghost/logging/-/logging-2.0.1.tgz#208816fc20c7d1fbc19ce97555fced6c13d391e0" + integrity sha512-vE2zm/W3H13Rpp3t9F84p3GbdBaXxcSxNEMN48c1CEPfhRc+hU2KMB4X9PvAPKnyT9bbUF5wH8LKC+EwluJMsA== + dependencies: + "@tryghost/bunyan-rotating-filestream" "^0.0.7" + "@tryghost/elasticsearch" "^1.0.1" + "@tryghost/pretty-stream" "^0.1.3" + "@tryghost/root-utils" "^0.3.8" + bunyan "^1.8.15" + bunyan-loggly "^1.4.2" + fs-extra "^10.0.0" + gelf-stream "^1.1.1" + json-stringify-safe "^5.0.1" + lodash "^4.17.21" + +"@tryghost/pretty-cli@1.2.22": + version "1.2.22" + resolved "https://registry.yarnpkg.com/@tryghost/pretty-cli/-/pretty-cli-1.2.22.tgz#dfc3356c842569003f5e0cd6114b3811c2a4911b" + integrity sha512-y5k/bT3zhuYGDbPUNcgAPt9OSk4rZjtEjIjrqbo1nES14kp66uq+aLldqPyMAR/1a17AFnwMEiEZwkRL3KSAhQ== + dependencies: + chalk "^4.1.0" + sywac "^1.3.0" + +"@tryghost/pretty-stream@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@tryghost/pretty-stream/-/pretty-stream-0.1.3.tgz#024b4a2d9b7c3a3492f2343d749d9b60b68a5196" + integrity sha512-aDFVgopgvXozJ1o4FXzg/MLa6JorLXxIq43YPuxL4aR8hWTKUbf9NAYMpOU8fAE5Pgi0rKVKYhNhvAfk223WRA== + dependencies: + lodash "^4.17.21" + moment "^2.29.1" + prettyjson "1.2.5" + +"@tryghost/release-utils@0.6.12": + version "0.6.12" + resolved "https://registry.yarnpkg.com/@tryghost/release-utils/-/release-utils-0.6.12.tgz#a02c725df910053466d11224e81cec0933f500dd" + integrity sha512-6G9o8jOFhcQRbaXrw8XsIXzaDPuxkUb7j5bZzdV1qhnBK2X1Wg/dg1xDN8+uR8jJ/BgrngwaGKs3NTAGKbqfBA== dependencies: bluebird "3.7.2" - emoji-regex "9.2.0" + emoji-regex "9.2.1" execa "4.1.0" lodash "4.17.20" request "2.88.2" request-promise "4.2.6" -"@tryghost/zip@1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.4.tgz#1f196881ea35917bcbbdf8ad335f4b460f15178c" - integrity sha512-S/dYOsUxLzl6F7GqV10vmdPxO7TiAcnG6eSd1N9X7mJ4GQbwoSE3cB8alb7H5LRgaT9/jmNtvvysxzwCGsZEJw== +"@tryghost/root-utils@^0.3.8": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@tryghost/root-utils/-/root-utils-0.3.8.tgz#41327ea11fb6882c74fea145692aeae7a28482de" + integrity sha512-/BSrsd3SAbVvRIkUhCT0NeAgl0+CELFoERrvghzl093ZO9R/P7BESvIXUOugGUviZfUUgJI52bcdq2xhW9APcw== dependencies: - archiver "4.0.1" - bluebird "3.7.2" - extract-zip "2.0.0" - fs-extra "9.0.1" + caller "^1.0.1" + find-root "^1.1.0" + +"@tryghost/server@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@tryghost/server/-/server-0.1.4.tgz#5c09285a758fede7294ae349cc1201f3587094c9" + integrity sha512-h6zAdM8yxuCjDf4EsHskj6xI0j6gbHPf7ZAgPjAfHrsbOAwWVAWjBYRx94890+4aJU5b+Vja6QPNuTZDiGIW/w== + dependencies: + "@tryghost/debug" "^0.1.10" + "@tryghost/logging" "^2.0.1" + +"@tryghost/zip@1.1.18": + version "1.1.18" + resolved "https://registry.yarnpkg.com/@tryghost/zip/-/zip-1.1.18.tgz#1afcf07d1c5404ab38bc42ef9b400eafc4052edc" + integrity sha512-NyVBOnB4PWqx29/8ZO94Sbgy21izJVnBPwH5PgoVG4B16IRXJ1Fa13WrUeUZuGXBqqiH5D5KorZhlYkfmsvHuw== + dependencies: + archiver "^4.0.2" + bluebird "^3.7.2" + extract-zip "2.0.1" + fs-extra "^9.1.0" "@types/node@*": - version "14.14.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" - integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== "@types/q@^1.5.1": version "1.5.4" @@ -188,6 +278,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -195,7 +290,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -243,13 +338,13 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" -archiver@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz#3f722b121777e361ca9fad374ecda38e77e63c7f" - integrity sha512-/YV1pU4Nhpf/rJArM23W6GTUjT0l++VbjykrCRua1TSXrn+yM8Qs7XvtwSiRse0iCe49EPNf7ktXnPsWuSb91Q== +archiver@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-4.0.2.tgz#43c72865eadb4ddaaa2fb74852527b6a450d927c" + integrity sha512-B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ== dependencies: archiver-utils "^2.1.0" - async "^2.6.3" + async "^3.2.0" buffer-crc32 "^0.2.1" glob "^7.1.6" readable-stream "^3.6.0" @@ -397,12 +492,10 @@ async@^1.4.0: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" +async@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== asynckit@^0.4.0: version "0.4.0" @@ -419,16 +512,16 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.0.4.tgz#f87ac6105d7861e31af794b8ebb1c6d4390d3d55" - integrity sha512-hmjYejN/WTyPP9cdNmiwtwqM8/ACVJPD5ExtwoOceQohNbgnFNiwpL2+U4bXS8aXozBL00WvH6WhqbuHf0Fgfg== +autoprefixer@10.2.5: + version "10.2.5" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.5.tgz#096a0337dbc96c0873526d7fef5de4428d05382d" + integrity sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA== dependencies: - browserslist "^4.14.7" - caniuse-lite "^1.0.30001161" - colorette "^1.2.1" + browserslist "^4.16.3" + caniuse-lite "^1.0.30001196" + colorette "^1.2.2" + fraction.js "^4.0.13" normalize-range "^0.1.2" - num2fraction "^1.2.2" postcss-value-parser "^4.1.0" aws-sign2@~0.7.0: @@ -486,12 +579,12 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -beeper@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-2.0.0.tgz#ecda02439e3c0539d300c363303e4ffeb2daec70" - integrity sha512-+ShExQEewPvKdTUOtCAJmkUAgEyNF0QqgiAhPRE5xLvoFkIPt8xuHKaz1gMLzSMS73beHWs9gbRBngdH61nVWw== +beeper@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-2.1.0.tgz#3151990e42de31387909fdcc2c12623eb6eefb16" + integrity sha512-85+CcymhlP0jM4fs4ZMiMRl58VthoN9NRdvi+knXiQpP2UggkSre+A9rOZ0c2g2Vh+pEF5ZAlT+k8dsJNoanAA== dependencies: - delay "^4.1.0" + yoctodelay "^1.1.0" binary-extensions@^1.0.0: version "1.13.1" @@ -514,26 +607,26 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@3.7.2, bluebird@^3.5.0, bluebird@^3.5.3: +bluebird@3.7.2, bluebird@^3.5.0, bluebird@^3.5.3, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== +body-parser@1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" + integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== dependencies: - bytes "3.1.0" + bytes "3.1.1" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" - http-errors "1.7.2" + http-errors "1.8.1" iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" + qs "6.9.6" + raw-body "2.4.2" + type-is "~1.6.18" body@^5.1.0: version "5.1.0" @@ -574,16 +667,16 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -browserslist@^4.0.0, browserslist@^4.14.7: - version "4.14.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6" - integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ== +browserslist@^4.0.0, browserslist@^4.16.3: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== dependencies: - caniuse-lite "^1.0.30001157" + caniuse-lite "^1.0.30001181" colorette "^1.2.1" - electron-to-chromium "^1.3.591" + electron-to-chromium "^1.3.649" escalade "^3.1.1" - node-releases "^1.1.66" + node-releases "^1.1.70" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: version "0.2.13" @@ -608,7 +701,7 @@ buffer@^5.1.0, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -bunyan-loggly@1.4.2: +bunyan-loggly@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/bunyan-loggly/-/bunyan-loggly-1.4.2.tgz#dda0fb18f487fa150a79728e906d83e871d235e9" integrity sha512-/fwAO+NPogiPziEk4bQKZhwYo+POrbdAlatpW5r+BQSTHqYyxGFHMtLMp4uSjIdPetXDxvG5qffAePB3hc/6NA== @@ -616,10 +709,10 @@ bunyan-loggly@1.4.2: json-stringify-safe "^5.0.1" node-loggly-bulk "^2.2.4" -bunyan@1.8.14: - version "1.8.14" - resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.14.tgz#3d8c1afea7de158a5238c7cb8a66ab6b38dd45b4" - integrity sha512-LlahJUxXzZLuw/hetUQJmRgZ1LF6+cr5TPpRj6jf327AsiIq2jhYEH4oqUUkVKTor+9w2BT3oxVwhzE5lw9tcg== +bunyan@^1.8.15: + version "1.8.15" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46" + integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig== optionalDependencies: dtrace-provider "~0.8" moment "^2.19.3" @@ -639,10 +732,10 @@ bytes@1: resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== cache-base@^1.0.1: version "1.0.1" @@ -659,13 +752,13 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -call-bind@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" - integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" - get-intrinsic "^1.0.0" + get-intrinsic "^1.0.2" caller-callsite@^2.0.0: version "2.0.0" @@ -681,7 +774,7 @@ caller-path@^2.0.0: dependencies: caller-callsite "^2.0.0" -caller@1.0.1: +caller@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/caller/-/caller-1.0.1.tgz#b851860f70e195db3d277395aa1a7e23ea30ecf5" integrity sha1-uFGGD3Dhlds9J3OVqhp+I+ow7PU= @@ -691,11 +784,6 @@ callsites@^2.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= -camelcase@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" @@ -711,20 +799,25 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001157, caniuse-lite@^1.0.30001161: - version "1.0.30001163" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001163.tgz#7595ae1b430fb4ad6adcd4f0a3d705efad9dc379" - integrity sha512-QQbOGkHWnvhn3Dlf4scPlXTZVhGOK+2qCOP5gPxqzXHhtn3tZHwNdH9qNcQRWN0f3tDYrsyXFJCFiP/GLzI5Vg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001181: + version "1.0.30001181" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001181.tgz#4f0e5184e1ea7c3bf2727e735cbe7ca9a451d673" + integrity sha512-m5ul/ARCX50JB8BSNM+oiPmQrR5UmngaQ3QThTTp5HcIIQGP/nPBs82BYLE+tigzm3VW+F4BJIhUyaVtEweelQ== + +caniuse-lite@^1.0.30001196: + version "1.0.30001196" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001196.tgz#00518a2044b1abf3e0df31fadbe5ed90b63f4e64" + integrity sha512-CPvObjD3ovWrNBaXlAIGWmg2gQQuJ5YhuciUOjPRox6hIQttu8O+b51dx6VIpIY9ESd2d0Vac1RKpICdG4rGUg== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@4.1.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -738,6 +831,14 @@ chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -784,7 +885,7 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== -cliui@^3.0.3, cliui@^3.2.0: +cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= @@ -793,6 +894,15 @@ cliui@^3.0.3, cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -898,7 +1008,12 @@ colorette@^1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== -colors@^1.1.2: +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +colors@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -915,10 +1030,10 @@ commander@^2.19.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -common-tags@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== +common-tags@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== component-emitter@^1.2.1: version "1.3.0" @@ -965,12 +1080,12 @@ config-chain@^1.1.12: ini "^1.3.4" proto-list "~1.2.1" -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: - safe-buffer "5.1.2" + safe-buffer "5.2.1" content-type@~1.0.4: version "1.0.4" @@ -994,12 +1109,7 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookie@^0.4.1: +cookie@0.4.1, cookie@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== @@ -1214,13 +1324,6 @@ debug@4, debug@^4.1.1: dependencies: ms "2.1.2" -debug@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - debug@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -1228,6 +1331,13 @@ debug@^3.1.0: dependencies: ms "^2.1.1" +debug@^4.3.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1279,11 +1389,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -delay@^4.1.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-4.4.0.tgz#71abc745f3ce043fe7f450491236541edec4ad0c" - integrity sha512-txgOrJu3OdtOfTiEOT2e76dJVfG/1dz2NZ4F0Pyt4UGZJryssMRp5vdM5wQoLwSOBNdrJv3F9PAhp/heqd7vrA== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1326,9 +1431,9 @@ domelementtype@1: integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" - integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== domutils@^1.7.0: version "1.7.0" @@ -1393,15 +1498,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.591: - version "1.3.611" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.611.tgz#43a25c07ae05f9555335908abc46c89898f5afb7" - integrity sha512-YhqTzCXtEO2h0foGLGS60ortd6yY/yUQhqDEp1VWG3DIyHvckFFyaRwR41M0/M3m7Yb8Exqh+nzyb2TuxaoMTw== +electron-to-chromium@^1.3.649: + version "1.3.649" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.649.tgz#3aa8be052d4d268ede45d8e98d0cd60ffefad607" + integrity sha512-ojGDupQ3UMkvPWcTICe4JYe17+o9OLiFMPoduoR72Zp2ILt1mRVeqnxBEd6s/ptekrnsFU+0A4lStfBe/wyG/A== -emoji-regex@9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.0.tgz#a26da8e832b16a9753309f25e35e3c0efb9a066a" - integrity sha512-DNc3KFPK18bPdElMJnf/Pkv5TXhxFU3YFDEuGLDRtPmV4rkmCjBkCSEp22u6rBHdSN9Vlp/GK7k98prmE1Jgug== +emoji-regex@9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.1.tgz#c9b25604256bb3428964bead3ab63069d736f7ee" + integrity sha512-117l1H6U4X3Krn+MrzYrL57d5H7siRHWraBs7s+LjRuFK7Fe7hJqnJ0skWlinqsycVLU5YAo6L8CsEYQ0V5prg== emoji-regex@^8.0.0: version "8.0.0" @@ -1421,9 +1526,9 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: once "^1.4.0" entities@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" @@ -1457,22 +1562,24 @@ es-abstract@^1.17.2: string.prototype.trimstart "^1.0.1" es-abstract@^1.18.0-next.1: - version "1.18.0-next.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" - integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.0.2" has "^1.0.3" has-symbols "^1.0.1" is-callable "^1.2.2" - is-negative-zero "^2.0.0" + is-negative-zero "^2.0.1" is-regex "^1.1.1" - object-inspect "^1.8.0" + object-inspect "^1.9.0" object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" @@ -1579,29 +1686,29 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -express-hbs@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/express-hbs/-/express-hbs-2.3.4.tgz#ec3e0796bec0b5937199b0d800d3a6b30c63063a" - integrity sha512-cirblS55Syynfjcn6bLwFAVwq1iHyyItGyoEb7D08iwJIBRy2V7D47se/My8/B0YPjOP6JyRXNcPgCDQKyiqGQ== +express-hbs@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/express-hbs/-/express-hbs-2.4.0.tgz#b91ad28a35319ec08be9350db65169904bc69490" + integrity sha512-CruS8DA6m8i20MTjWpE6X8zu6q0rbQJbQyIp7V7NoYD1znf0krnCHQ8tVB7I9pJSZYnOPj/VPSByNU3sVDxJfw== dependencies: bluebird "^3.5.3" - handlebars "4.7.6" - lodash "4.17.19" - readdirp "3.4.0" + handlebars "^4.7.7" + lodash "^4.17.21" + readdirp "^3.6.0" optionalDependencies: - js-beautify "1.11.0" + js-beautify "^1.13.11" -express@4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== +express@4.17.2: + version "4.17.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" + integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== dependencies: accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" + body-parser "1.19.1" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.0" + cookie "0.4.1" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" @@ -1615,13 +1722,13 @@ express@4.17.1: on-finished "~2.3.0" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" + proxy-addr "~2.0.7" + qs "6.9.6" range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" statuses "~1.5.0" type-is "~1.6.18" utils-merge "1.0.1" @@ -1677,10 +1784,10 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.0.tgz#f53b71d44f4ff5a4527a2259ade000fb8b303492" - integrity sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg== +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" get-stream "^5.1.0" @@ -1772,7 +1879,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-root@1.1.0: +find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== @@ -1860,10 +1967,15 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fraction.js@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" + integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== fragment-cache@^0.2.1: version "0.2.1" @@ -1882,15 +1994,24 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== +fs-extra@9.1.0, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^1.0.0" + universalify "^2.0.0" + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" fs-mkdirp-stream@^1.0.0: version "1.0.0" @@ -1918,7 +2039,7 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -gelf-stream@1.1.1: +gelf-stream@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/gelf-stream/-/gelf-stream-1.1.1.tgz#9cea9b6386ac301c741838ca3cb91e66dbfbf669" integrity sha1-nOqbY4asMBx0GDjKPLkeZtv79mk= @@ -1935,16 +2056,21 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-intrinsic@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" - integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.0.tgz#892e62931e6938c8a23ea5aaebcfb67bd97da97e" + integrity sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg== dependencies: function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.0.0, get-stream@^5.1.0, get-stream@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -1963,25 +2089,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -ghost-ignition@4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/ghost-ignition/-/ghost-ignition-4.2.2.tgz#7201d4756be6ebe6743495cf6c365ff8ee416b73" - integrity sha512-/ZqS1AOGjocR7h45PVObgT69cmDakvLPAnEu203mxtGwjnaSvuIdFA82cdoRh2Ehg/JQEi20FaSqgJSIzdMkGA== - dependencies: - bunyan "1.8.14" - bunyan-loggly "1.4.2" - caller "1.0.1" - debug "4.1.1" - find-root "1.1.0" - fs-extra "9.0.1" - gelf-stream "1.1.1" - json-stringify-safe "5.0.1" - lodash "4.17.19" - moment "2.27.0" - nconf "0.10.0" - prettyjson "1.2.1" - uuid "8.3.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -2019,10 +2126,10 @@ glob-watcher@^5.0.3: normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@7.1.6, glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2042,6 +2149,18 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -2085,29 +2204,32 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== -gscan@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/gscan/-/gscan-3.6.0.tgz#ca8f7865d50529a2ac844fc7c586aa78e20b4e7a" - integrity sha512-hpyeIM0QQMQ+DBEO2qkdHrt0RqooydGC4XIUGgQP3PxFjCQ97bMkazyHsr+ElBUhnQQaW8emHNk9fMolaWZKKw== +gscan@4.22.0: + version "4.22.0" + resolved "https://registry.yarnpkg.com/gscan/-/gscan-4.22.0.tgz#9f7996ea0c18caa6ba234148145223a64b40cd46" + integrity sha512-IhAoNL8089XT5HY0synqeadpfdLpZnI062drPID+qfhE7GSSh/N5SNv3naB3iP5L2Gt77mIplf21BTylUvqSpw== dependencies: - "@sentry/node" "5.26.0" - "@tryghost/pretty-cli" "1.2.10" - "@tryghost/zip" "1.1.4" + "@sentry/node" "6.16.1" + "@tryghost/config" "0.2.2" + "@tryghost/debug" "0.1.10" + "@tryghost/ignition-errors" "0.1.8" + "@tryghost/logging" "2.0.1" + "@tryghost/pretty-cli" "1.2.22" + "@tryghost/server" "0.1.4" + "@tryghost/zip" "1.1.18" bluebird "3.7.2" - chalk "4.1.0" - common-tags "1.8.0" - express "4.17.1" - express-hbs "2.3.4" - fs-extra "9.0.1" - ghost-ignition "4.2.2" - glob "7.1.6" - lodash "4.17.20" - multer "1.4.2" + chalk "4.1.2" + common-tags "1.8.2" + express "4.17.2" + express-hbs "2.4.0" + fs-extra "9.1.0" + glob "7.2.0" + lodash "4.17.21" + multer "1.4.4" pluralize "8.0.0" require-dir "1.2.0" - semver "7.3.2" - upath "1.2.0" - uuid "8.3.1" + semver "7.3.5" + uuid "8.3.2" validator "13.0.0" gulp-cli@^2.2.0: @@ -2182,12 +2304,12 @@ gulp-uglify@3.0.2: uglify-js "^3.0.5" vinyl-sourcemaps-apply "^0.2.0" -gulp-zip@5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-5.0.2.tgz#2edf797ec842e770f4dfde8bef97d139015b1972" - integrity sha512-rZd0Ppuc8Bf7J2/WzcdNaeb+lcEXf1R8mV/PJ9Kdu7PmnInWVeLSmiXIka/2QSe6uhAsGVFAMffWSaMzAPGTBg== +gulp-zip@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-5.1.0.tgz#38cc1d4c61bc2ab06b452ce463cbe2adc52b935e" + integrity sha512-XZr/y91IliK/SpR74g3TkZejGkGEmK7CSDjSghT1jXshgO+dFvpLIz9w9fpuwkew6i7k4F+G24TubNgq1ISzEw== dependencies: - get-stream "^5.1.0" + get-stream "^5.2.0" plugin-error "^1.0.1" through2 "^3.0.1" vinyl "^2.1.0" @@ -2210,10 +2332,10 @@ gulplog@^1.0.0: dependencies: glogg "^1.0.0" -handlebars@4.7.6: - version "4.7.6" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== +handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== dependencies: minimist "^1.2.5" neo-async "^2.6.0" @@ -2312,6 +2434,11 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== +hpagent@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.1.tgz#66f67f16e5c7a8b59a068e40c2658c2c749ad5e2" + integrity sha512-IxJWQiY0vmEjetHdoE9HZjD4Cx+mYTr25tR7JCxXaiI3QxW0YqYyM11KyZbHufoa/piWhMb2+D3FGpMgmA2cFQ== + hsl-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" @@ -2327,32 +2454,21 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: depd "~1.1.2" inherits "2.0.4" - setprototypeof "1.1.1" + setprototypeof "1.2.0" statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" + toidentifier "1.0.1" http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== http-signature@~1.2.0: version "1.2.0" @@ -2428,20 +2544,20 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -ini@^1.3.0, ini@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +ini@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -inquirer@7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== +inquirer@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.0.0.tgz#957a46db1abcf0fdd2ab82deb7470e90afc7d0ac" + integrity sha512-ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.0" @@ -2449,10 +2565,10 @@ inquirer@7.3.3: cli-width "^3.0.0" external-editor "^3.0.3" figures "^3.0.0" - lodash "^4.17.19" + lodash "^4.17.21" mute-stream "0.0.8" run-async "^2.4.0" - rxjs "^6.6.0" + rxjs "^6.6.6" string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" @@ -2522,9 +2638,9 @@ is-buffer@^1.1.5: integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" - integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-color-stop@^1.0.0: version "1.1.0" @@ -2635,10 +2751,10 @@ is-negated-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number@^3.0.0: version "3.0.0" @@ -2761,21 +2877,20 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -js-beautify@1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2" - integrity sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A== +js-beautify@^1.13.11: + version "1.14.0" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" + integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== dependencies: config-chain "^1.1.12" editorconfig "^0.15.3" glob "^7.1.3" - mkdirp "~1.0.3" - nopt "^4.0.3" + nopt "^5.0.0" js-yaml@^3.13.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -2805,7 +2920,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@5.0.1, json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -2957,16 +3072,21 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -lodash@4.17.20, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.4: +lodash@4.17.20, lodash@^4.17.19, lodash@^4.17.4: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash@4.17.21, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +long-timeout@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/long-timeout/-/long-timeout-0.1.1.tgz#9721d788b47e0bcb5a24c2e2bee1a0da55dab514" + integrity sha1-lyHXiLR+C8taJMLivuGg2lXatRQ= + lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -2975,6 +3095,13 @@ lru-cache@^4.1.5: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -3070,17 +3197,17 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +mime-db@1.45.0: + version "1.45.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" + integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + version "2.1.28" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" + integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== dependencies: - mime-db "1.44.0" + mime-db "1.45.0" mime@1.6.0: version "1.6.0" @@ -3112,24 +3239,14 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@^0.5.4, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" -mkdirp@~1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -moment@2.27.0: - version "2.27.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" - integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== - -moment@^2.18.1, moment@^2.19.3: +moment@^2.18.1, moment@^2.19.3, moment@^2.29.1: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== @@ -3139,25 +3256,25 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2, ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multer@1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.2.tgz#2f1f4d12dbaeeba74cb37e623f234bf4d3d2057a" - integrity sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg== +ms@2.1.3, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" + integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== dependencies: append-field "^1.0.0" busboy "^0.2.11" concat-stream "^1.5.2" - mkdirp "^0.5.1" + mkdirp "^0.5.4" object-assign "^4.1.1" on-finished "^2.3.0" type-is "^1.6.4" @@ -3187,10 +3304,10 @@ nan@^2.12.1, nan@^2.14.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.18: - version "3.1.18" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.18.tgz#0680db22ab01c372e89209f5d18283d98de3e96d" - integrity sha512-rndlDjbbHbcV3xi+R2fpJ+PbGMdfBxz5v1fATIQFq0DP64FsicQdwnKLy47K4kZHdRpmQXtz24eGsxQqamzYTA== +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== nanomatch@^1.2.9: version "1.2.13" @@ -3209,15 +3326,15 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -nconf@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/nconf/-/nconf-0.10.0.tgz#da1285ee95d0a922ca6cee75adcf861f48205ad2" - integrity sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q== +nconf@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/nconf/-/nconf-0.11.3.tgz#4ee545019c53f1037ca57d696836feede3c49163" + integrity sha512-iYsAuDS9pzjVMGIzJrGE0Vk3Eh8r/suJanRAnWGBd29rVS2XtSgzcAo5l6asV3e4hH2idVONHirg1efoBOslBg== dependencies: async "^1.4.0" - ini "^1.3.0" + ini "^2.0.0" secure-keys "^1.0.0" - yargs "^3.19.0" + yargs "^16.1.1" ncp@~2.0.0: version "2.0.0" @@ -3248,18 +3365,17 @@ node-loggly-bulk@^2.2.4: moment "^2.18.1" request ">=2.76.0 <3.0.0" -node-releases@^1.1.66: - version "1.1.67" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" - integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== +node-releases@^1.1.70: + version "1.1.70" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" + integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== -nopt@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" - osenv "^0.1.4" normalize-package-data@^2.3.2: version "2.5.0" @@ -3314,11 +3430,6 @@ nth-check@^1.0.2: dependencies: boolbase "~1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -3343,10 +3454,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -3360,7 +3471,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.1: +object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -3450,11 +3561,6 @@ ordered-read-streams@^1.0.0: dependencies: readable-stream "^2.0.1" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - os-locale@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" @@ -3462,19 +3568,11 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" @@ -3956,15 +4054,14 @@ postcss-values-parser@^2.0.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss@8.1.10: - version "8.1.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.10.tgz#129834f94c720554d2cfdaeb27d5542ac4a026ea" - integrity sha512-iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg== +postcss@8.2.8: + version "8.2.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.8.tgz#0b90f9382efda424c4f0f69a2ead6f6830d08ece" + integrity sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw== dependencies: - colorette "^1.2.1" - nanoid "^3.1.18" + colorette "^1.2.2" + nanoid "^3.1.20" source-map "^0.6.1" - vfile-location "^3.2.0" postcss@^6.0.1, postcss@^6.0.11: version "6.0.23" @@ -3989,12 +4086,12 @@ pretty-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prettyjson@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" - integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok= +prettyjson@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.5.tgz#ef3cfffcc70505c032abc59785884b4027031835" + integrity sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw== dependencies: - colors "^1.1.2" + colors "1.4.0" minimist "^1.2.0" process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: @@ -4007,12 +4104,12 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" pseudomap@^1.0.2: @@ -4060,15 +4157,10 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@^6.4.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== +qs@6.9.6, qs@^6.4.0: + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== qs@~6.5.2: version "6.5.2" @@ -4080,13 +4172,13 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== +raw-body@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== dependencies: - bytes "3.1.0" - http-errors "1.7.2" + bytes "3.1.1" + http-errors "1.8.1" iconv-lite "0.4.24" unpipe "1.0.0" @@ -4154,13 +4246,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readdirp@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -4170,6 +4255,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -4357,23 +4449,23 @@ run-async@^2.4.0: resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== -rxjs@^6.6.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== +rxjs@^6.6.6: + version "6.6.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-json-parse@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" @@ -4401,6 +4493,11 @@ sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +secure-json-parse@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.4.0.tgz#5aaeaaef85c7a417f76271a4f5b0cc3315ddca85" + integrity sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg== + secure-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/secure-keys/-/secure-keys-1.0.0.tgz#f0c82d98a3b139a8776a8808050b824431087fca" @@ -4418,15 +4515,17 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== dependencies: debug "2.6.9" depd "~1.1.2" @@ -4435,22 +4534,22 @@ send@0.17.1: escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.7.2" + http-errors "1.8.1" mime "1.6.0" - ms "2.1.1" + ms "2.1.3" on-finished "~2.3.0" range-parser "~1.2.1" statuses "~1.5.0" -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.1" + send "0.17.2" set-blocking@^2.0.0: version "2.0.0" @@ -4467,10 +4566,10 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shebang-command@^2.0.0: version "2.0.0" @@ -4681,7 +4780,16 @@ string-width@^4.1.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.trimend@^1.0.1: +string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== @@ -4689,7 +4797,7 @@ string.prototype.trimend@^1.0.1: call-bind "^1.0.0" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.1: +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== @@ -4730,6 +4838,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -4799,15 +4914,15 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -sywac@1.3.0: +sywac@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/sywac/-/sywac-1.3.0.tgz#324789bdb8bd7d0d66625c9144fce81ab5ba6f99" integrity sha512-LDt2stNTp4bVPMgd70Jj9PWrSa4batl+bv+Ea5NLNGT7ufc4oQPtRfQ73wbddNV6RilaPqnEt6y1Wkm5FVTNEg== tar-stream@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa" - integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: bl "^4.0.3" end-of-stream "^1.4.1" @@ -4913,10 +5028,10 @@ to-through@^2.0.0: dependencies: through2 "^2.0.3" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" @@ -4948,7 +5063,7 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== -type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: +type-is@^1.6.4, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -4972,9 +5087,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= uglify-js@^3.0.5, uglify-js@^3.1.4: - version "3.12.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.1.tgz#78307f539f7b9ca5557babb186ea78ad30cc0375" - integrity sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ== + version "3.12.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.6.tgz#f884584fcc42e10bca70db5cb32e8625c2c42535" + integrity sha512-aqWHe3DfQmZUDGWBbabZ2eQnJlQd1fKlMUu7gV+MiTuDzdgDw31bI3wA2jLLsV/hNcDP26IfyEgSVoft5+0SVw== unc-path-regex@^0.1.2: version "0.1.2" @@ -5030,11 +5145,6 @@ unique-stream@^2.0.2: json-stable-stringify-without-jsonify "^1.0.1" through2-filter "^3.0.0" -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -5058,15 +5168,15 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@1.2.0, upath@^1.1.1: +upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" - integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -5100,15 +5210,10 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== - -uuid@8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== +uuid@8.3.2, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uuid@^3.3.2: version "3.4.0" @@ -5159,11 +5264,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== - vinyl-fs@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" @@ -5252,11 +5352,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -window-size@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" - integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -5270,6 +5365,15 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -5280,16 +5384,26 @@ xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^3.2.0, y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yargs-parser@5.0.0-security.0: version "5.0.0-security.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz#4ff7271d25f90ac15643b86076a2ab499ec9ee24" @@ -5298,18 +5412,23 @@ yargs-parser@5.0.0-security.0: camelcase "^3.0.0" object.assign "^4.1.0" -yargs@^3.19.0: - version "3.32.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" - integrity sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU= +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.1: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: - camelcase "^2.0.1" - cliui "^3.0.3" - decamelize "^1.1.1" - os-locale "^1.4.0" - string-width "^1.0.1" - window-size "^0.1.4" - y18n "^3.2.0" + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" yargs@^7.1.0: version "7.1.1" @@ -5345,6 +5464,11 @@ yazl@^2.5.1: dependencies: buffer-crc32 "~0.2.3" +yoctodelay@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/yoctodelay/-/yoctodelay-1.1.0.tgz#4820ab055bb044a582e92d01701ada043f427132" + integrity sha512-iCPt7W3X6SCm5wEnMRCoq+c8XCzscKTT0oWq5TNsIb+PUVtNkt/5O3VGlXXlLBnjTKL+29QyTzqbcJNLaiaJyQ== + zip-stream@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz#cb8db9d324a76c09f9b76b31a12a48638b0b9708"