/* A (more) Modern CSS Reset */
/* by Andy Bell, https://piccalil.li/blog/a-more-modern-css-reset/ */
*,
::after,
::before {
    box-sizing: border-box;
}
html {
    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
}
blockquote,
body,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
p {
    margin-block-end: 0;
}
ol[role="list"],
ul[role="list"] {
    list-style: none;
}
body {
    min-height: 100vh;
    line-height: 1.82em;
}
button,
h1,
h2,
h3,
h4,
input,
label {
    line-height: 1.16;
}
h1,
h2,
h3,
h4 {
    text-wrap: balance;
}
a:not([class]) {
    text-decoration-skip-ink: auto;
    color: currentColor;
}
img,
picture {
    max-width: 100%;
    display: block;
}
button,
input,
select,
textarea {
    font-family: inherit;
    font-size: inherit;
}
textarea:not([rows]) {
    min-height: 10em;
}
:target {
    scroll-margin-block: 5ex;
}

/**********************************************************************
* Fonts
*********************************************************************/
@font-face {
    font-display: swap;
    font-family: "Literata";
    font-style: normal;
    font-weight: 400;
    src: url("/assets/fonts/literata/literata-text-regular.woff2")
        format("woff2");
}
@font-face {
    font-display: swap;
    font-family: "Literata";
    font-style: bold;
    font-weight: 700;
    src: url("/assets/fonts/literata/literata-display-semi-bold.woff2")
        format("woff2");
}

/**********************************************************************
 * Foundation
 *********************************************************************/
:root {
    --fs-xs: clamp(0.62rem, 0.12vi + 0.62rem, 0.81rem);
    --fs-sm: clamp(0.8rem, 0.16vi + 0.76rem, 0.89rem);
    --fs-base: clamp(1rem, 0.34vi + 0.92rem, 1.19rem);
    --fs-md: clamp(1.25rem, 0.6vi + 1.1rem, 1.58rem);
    --fs-lg: clamp(1.56rem, 0.99vi + 1.32rem, 2.11rem);
    --fs-xl: clamp(1.95rem, 1.56vi + 1.57rem, 2.81rem);
    --fs-xxl: clamp(2.64rem, 2.47vi + 1.96rem, 3.85rem);
    --fs-xxxl: clamp(3.05rem, 3.52vi + 2.18rem, 5rem);
    --fs-xxxxl: clamp(4.2rem, 4.42vi + 3.18rem, 7rem);
    --colour-bg: rgb(252, 252, 252);
    --colour-bg-fade-less: rgba(252, 252, 252, 0.6);
    --colour-bg-fade-even-less: rgba(252, 252, 252, 0.8);
    --colour-faded-bg: rgba(196, 196, 196, 0.12);
    --colour-fg: rgb(32, 32, 32);
    --colour-fg-fade: rgba(32, 32, 32, 0.2);
    --colour-fg-fade-slightly-less: rgba(32, 32, 32, 0.4);
    --colour-fg-fade-less: rgba(32, 32, 32, 0.6);
    --colour-fg-fade-more: rgba(32, 32, 32, 0.12);
    --colour-highlight-main: rgb(199, 16, 162); /* maybe move to: ff0a78 */
    --colour-highlight-main-fade: rgba(199, 16, 162, 0.2);
    --colour-highlight-main-fade-more: rgba(199, 16, 162, 0.12);
    --colour-highlight-main-fade-less: rgba(199, 16, 162, 0.6);
    --colour-highlight-secondary: rgb(147, 31, 123);
    --colour-highlight-secondary-fade: rgba(147, 31, 123, 0.2);
    --colour-highlight-secondary-fade-more: rgba(147, 31, 123, 0.12);
    --colour-highlight-secondary-fade-less: rgba(147, 31, 123, 0.6);
    --colour-info: rgba(250, 248, 165);
    --colour-info-fade: rgba(250, 248, 165, 0.2);
    --serif-backup: "ClarikaProGrotesque", serif;
    --serif: "Literata", serif;
    --system-serif: Georgia, Times, Times New Roman, serif;
    --sans-backup: system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;
    --sans: Futura, Trebuchet MS, Arial, sans-serif;
    --mono: Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter,
        monospace;
    --min-main-usable-width: 320px;
    --max-main-usable-width: 780px;
    --font-size: 16px;
}
.tight {
    margin-left: auto;
    margin-right: auto;
    width: fit-content !important;
}
.center {
    text-align: center;
}
.left {
    text-align: left;
}
.right {
    text-align: right;
}
.superwide {
    margin-left: auto;
    margin-right: auto;
    width: 80%;
}
.superwide img {
    border-radius: var(--fs-base);
}
.no-top-margin {
    margin-top: 0px;
}
div.grid + .thirds .superwide,
div.grid + .two-thirds-one-third .superwide,
div.grid + .one-third-two-thirds .superwide,
div.grid + .half-half .superwide {
    /* stop the breakout when in a grid column that isn't 100% of the grid width */
    margin-left: 0px !important;
    width: 100% !important;
}

html {
    font-display: swap;
    font-size: var(--font-size);
    -webkit-text-size-adjust: none;
    max-width: -webkit-fill-available;
    min-width: var(--min-main-usable-width); /* -webkit-fill-available; */
}
body {
    background: var(--colour-bg);
    color: var(--colour-fg);
    font-display: swap;
    font-family: var(--serif);
    font-size: var(--fs-base);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    height: 100%;
    line-height: 1.82em;
    position: relative;
}
body > section {
    margin-top: 2rem;
}
article,
footer,
header,
section {
    margin-left: auto;
    margin-right: auto;
    /*
    min-width: var(--min-main-usable-width);
    max-width: var(--max-main-usable-width);
    width: 92%;
    */
    max-width: 864px;
    width: 100%;
}
h1,
h2,
h3,
h4,
h5 {
    font-family: var(--sans);
    font-weight: 700;
}
h1 {
    font-size: var(--fs-xxl);
    letter-spacing: -0.012em;
}
h2 {
    font-size: var(--fs-lg);
    margin: 2.6rem auto 0.6rem auto;
}
h3 {
    font-size: var(--fs-md);
    margin: 2.6rem auto 0.6rem auto;
}
h4 {
    font-size: var(--fs-base);
    font-weight: normal;
    text-transform: uppercase;
}
h5 {
    font-family: var(--serif);
    font-size: var(--fs-base);
    font-weight: normal;
    text-transform: uppercase;
}
h1.no-top-padding {
    margin-top: 0px;
}
h1 + p.metadata {
    margin-top: 0px;
}
hr {
    border-top: 1px solid var(--colour-fg);
    margin: 0.2rem 0px 0.2rem 0px;
}
h4:has(+ hr),
h5:has(+ hr) {
    margin-bottom: 0px !important;
}
hr + p {
    margin-top: 0.6rem;
}
blockquote.mega,
section.mega h1,
.kg-blockquote-alt {
    font-family: var(--serif);
    font-size: var(--fs-xxl);
    font-style: italic;
    font-weight: 700;
    line-height: calc(var(--fs-xxl) - 0.6rem);
    margin: 1.8rem auto 1.8rem auto;
}
blockquote.mega,
section.mega h1,
.kg-blockquote-alt {
    font-family: var(--sans);
    font-size: var(--fs-xxxxl);
    font-style: normal;
    font-weight: 700;
    line-height: calc(var(--fs-xxxxl) - 0.6rem);
}
blockquote:has(+ p),
.kg-blockquote-alt:has(+ p) {
    margin-bottom: 1.4rem;
}
blockquote {
    border-left: 3px solid var(--colour-highlight-main-fade);
    font-size: var(--fs-base);
    font-weight: 400;
    line-height: var(--fs-lg);
    margin-left: 0px;
    padding-left: var(--fs-sm);
}
h3 + blockquote {
    margin-top: 0px;
}
p {
    line-height: 1.82rem;
}
p img {
    border-radius: 1rem;
    width: 100%;
}
article p:has(img) {
    color: var(--colour-fg-fade-less);
    font-size: var(--fs-sm);
    text-align: center;
}
article p:has(img) img {
    margin-bottom: 0.2rem;
}
section.details {
    text-align: right;
}
section.details + section.details {
    margin-top: 0px;
}
section.details p {
    border-bottom: 1px solid var(--colour-fg-fade);
    color: var(--colour-fg-fade-less);
    font-size: var(--fs-sm);
    margin-left: auto;
    padding-bottom: 0.2rem;
    text-align: right;
    width: fit-content;
}
section.details p img {
    border-radius: 0px !important;
    display: inline;
    margin-left: 0.6rem;
    margin-right: 0.32rem;
    margin-top: -0.2rem;
    vertical-align: middle;
    width: 1rem;
}
section.details p img:first-child {
    margin-left: 0px;
}
section.details ul li {
}
section nav {
    color: var(--colour-fg-fade-less);
    font-size: var(--fs-sm);
}
section nav img {
    margin-right: 0.4rem;
    margin-top: -0.2rem;
    vertical-align: middle;
    width: 2rem;
}
section nav a {
    border-bottom: 1px dotted var(--colour-highlight-main-fade);
    color: var(--colour-highlight-main-fade-less);
    margin-right: 0.32rem;
    padding-bottom: 0.2rem;
    text-decoration: none;
}
section nav a.no-line {
    border-bottom: none;
}
section nav a:visited {
    color: var(--colour-highlight-secondary-fade);
}
section nav ul {
    list-style-type: none;
    padding-left: 0px;
}
section nav ul li {
    display: inline;
    margin-left: 1em;
}
section nav ul li:first-child {
    margin-left: none;
}
nav ul li button {
    border-color: var(--colour-fg-fade);
    color: var(--colour-fg-fade-slightly-less) !important;
}
footer {
    border-top: 1px solid var(--colour-fg-fade);
    color: var(--colour-fg-fade-less);
    font-size: var(--fs-sm);
    margin-left: auto;
    margin-top: 3rem;
    padding-bottom: 1rem;
    padding-top: 1rem;
    text-align: right;
}
ul.collapsed li {
    display: inline-block;
    margin-right: 0.26rem;
    vertical-align: middle;
}
a.no-line {
    border-bottom: none;
    text-decoration: none;
}
a {
    border-bottom: 1px solid var(--colour-fg-fade);
    text-decoration: none;
}
a:visited {
    color: var(--colour-fg-fade-less);
    border-bottom: 1px solid var(--colour-fg-fade-slightly-less);
}
a.subtle {
    border-bottom: 0px;
    color: var(--colour-fg);
    padding-bottom: var(--fs-xs);
}
a.subtle::after {
  background: url("data:image/svg+xml,%3Csvg width='24px' height='24px' viewBox='0 0 24 24' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;'%3E%3Cg transform='matrix(6.12323e-17,1,-1,6.12323e-17,28.2306,-0.003)'%3E%3Cg%3E%3Cg transform='matrix(3.65432e-17,0.596796,-0.596796,3.65432e-17,23.3934,9.0691)'%3E%3Cpath d='M9,11.997L18,11.997' style='fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.5px;'/%3E%3C/g%3E%3Cg transform='matrix(3.65432e-17,0.596796,-0.596796,3.65432e-17,23.3934,9.0691)'%3E%3Cpath d='M12.75,8.247L9,11.997L12.75,15.747' style='fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.5px;'/%3E%3C/g%3E%3Cg transform='matrix(3.65432e-17,0.596796,-0.596796,3.65432e-17,23.3934,9.0691)'%3E%3Cpath d='M4.5,1.497L19.5,1.497C19.5,1.497 22.5,1.497 22.5,4.497L22.5,19.497C22.5,19.497 22.5,22.497 19.5,22.497L4.5,22.497C4.5,22.497 1.5,22.497 1.5,19.497L1.5,4.497C1.5,4.497 1.5,1.497 4.5,1.497' style='fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.5px;'/%3E%3C/g%3E%3Cg transform='matrix(3.65432e-17,0.596796,-0.596796,3.65432e-17,23.3934,9.0691)'%3E%3Cpath d='M6,7.497L6,16.497' style='fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.5px;'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E") no-repeat;
  content: "\00a0\00a0\00a0";
  opacity: 0.6;
  vertical-align: middle;
}
.sans {
    font-family: var(--sans);
}

/**********************************************************************
 * Navigation and page helper
 *********************************************************************/
nav img.logo {
    display: inline;
    width: 2em;
}
nav img.logo.fun {
    width: 4em;
}
.nav-and-page-helper {
    display: none;
    margin-left: 0.2rem;
}
p.top-of-page {
    margin-left: auto;
    margin-top: 0.2rem;
    width: fit-content;
}
.nav-and-page-helper img,
p.top-of-page img {
    border-radius: 0px !important;
    display: block;
    margin-bottom: 0.2rem;
    opacity: 0.38;
    transition: 0.6s;
    width: 1rem;
}
.nav-and-page-helper img:hover,
p.top-of-page img:hover {
    opacity: 1;
    width: 2.6rem;
    transition: 1s;
}

/**********************************************************************
 * Footer
 *********************************************************************/
footer div.grid {
    align-items: start;
    /*max-width: var(--max-main-usable-width) !important;*/
}
footer div:first-child {
    text-align: left;
}
footer div ul {
    list-style-type: none;
    margin: 0px;
    padding-left: 0px;
}
footer section {
    width: auto !important;
}
footer div ul li.callout {
    font-weight: 700;
}
footer img.logo {
    height: 1.6rem;
}
foorter div:first-child:has(a.no-line) p:first-child {
    margin-top: 0.4em;
}
footer p.social svg {
    border-radius: 0px;
    display: inline;
    margin-right: 0.4em;
    width: 1.6rem;
}
footer p.social svg:hover path {
    stroke: var(--colour-highlight-main);
}
footer ul {
    list-style-type: none;
}

/**********************************************************************
 * Grid
 *********************************************************************/
.grid {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 1rem;
    row-gap: 0px;
    margin-left: auto;
    margin-right: auto;
    max-width: 864px;
    width: 100%;
}
.quarters {
    grid-template-columns: 1fr 1fr 1fr 1fr;
}
.thirds {
    grid-template-columns: 1fr 1fr 1fr;
}
.two-thirds-one-third {
    grid-template-columns: 2fr 1fr !important;
}
.one-third-two-thirds {
    grid-template-columns: 1fr 2fr !important;
}
.half-half {
    grid-template-columns: 1fr 1fr !important;
}
.center-column {
    grid-template-columns: 1fr 2fr 1fr;
}
.outline {
    border: 2px dotted var(--colour-highlight-secondary-fade);
}
.span-col-all {
    grid-column: span 2;
}
.span-col-two {
    grid-column: span 2;
}

body div:nth-of-type(2) {
    /* margin-top: -1rem; */
}

/**********************************************************************
 * Buttons
 *********************************************************************/
button {
    appearance: none;
    background-color: transparent;
    border: 1px solid;
    border-radius: 18px;
    box-sizing: border-box;
    color: var(--colour-fg-fade-less);
    cursor: pointer;
    font-family: var(--sans);
    font-weight: 400;
    margin: 0;
    min-height: 1em;
    min-width: 0;
    outline: none;
    padding: 12px;
    text-align: center;
    text-decoration: none;
    transition: all 300ms cubic-bezier(0.23, 1, 0.32, 1);
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
    will-change: transform;
}

button:disabled {
    pointer-events: none;
}

button:hover {
    color: var(--colour-fg) !important;
    background-color: var(--colour-highlight-main-fade-more);
    box-shadow: rgba(0, 0, 0, 0.25) 0 8px 15px;
    transform: translateY(-2px);
}

button:active {
    box-shadow: none;
    transform: translateY(0);
}

form button {
    font-size: var(--fs-sm);
    margin-top: -0.12em;
}

/**********************************************************************
 * Forms
 *********************************************************************/
form {
    display: grid;
    grid-template-columns: 3fr 1fr;
    grid-column-gap: 1em;
}
form h4 {
    margin-bottom: 0.8em;
    margin-top: 0.8em;
    padding-bottom: 0.2em;
    padding-left: 0.4em;
    padding-top: 0.2em;
    text-transform: none;
}
section:has(form.signup) {
    border-bottom: 1px solid var(--colour-fg-fade);
    border-top: 1px solid var(--colour-fg-fade);
    padding-bottom: 1.2em;
    padding-top: 1.2em;
}
form.signup {
    border-left: 3px solid var(--colour-highlight-main);
    padding-bottom: 1em;
    padding-left: 1em;
}
input[type="text"],
input[type="email"] {
    border: 1px solid var(--colour-fg-fade-more);
    border-radius: 0.6em;
    border-style: solid;
    margin-right: 1em;
    padding: 0.4em;
    width: 100%;
}
input[type="text"]:active,
input[type="email"]:active {
    border-color: var(--colour-highlight-main-fade);
}
label {
    color: var(--colour-fg-fade-less);
    display: block;
    font-size: var(--fs-sm);
    padding-bottom: 0.4em;
    padding-left: 0.4em;
}
:where(.loading, .success, .error) {
    display: none;
}
.loading .loading,
.success .success,
.error .error {
    display: block;
}

/**********************************************************************
 * Level set call out at the top of the page
 *********************************************************************/
section.level-set {
    background-color: var(--colour-highlight-secondary-fade);
    border-radius: 0px 0px var(--fs-sm) var(--fs-sm);
    -webkit-box-shadow: 0px 20px 62px -24px var(--colour-highlight-main-fade-more);
    -moz-box-shadow: 0px 20px 62px -24px var(--colour-highlight-main-fade-more);
    box-shadow: 0px 20px 62px -24px var(--colour-highlight-main-fade-more);
    color: var(--colour-fg);
    font-family: var(--sans);
    font-size: var(--fs-sm);
    margin-top: -1rem !important;
    padding: var(--fs-xs);
    padding-top: var(--fs-base);
    max-width: 100%;
}
section.level-set p {
    margin: 0px;
}
section.level-set + section.header {
    margin-top: var(--fs-xs);
}

/**********************************************************************
 * Home page
 *********************************************************************/
section.mega:has(h1) {
    margin-top: 1rem !important;
    max-width: calc(var(--max-main-usable-width) + 14%);
}
section.mega h1 {
    display: inline-block;
}
.hidden-on-load {
    display: none;
}
div#showMorePosts {
    padding-top: 1rem;
}
div#showMorePosts hr, div#showAllPosts hr {
    border-color: var(--colour-fg-fade);
}
div#showMorePosts hr {
    border-style: dashed;
}
div#showMorePosts p, div#showAllPosts p {
    background-color: var(--colour-bg);
    color: var(--colour-fg-fade-less);
    cursor: pointer;
    font-size: var(--fs-sm);
    font-style: italic;
    margin-left: auto;
    margin-right: auto;
    margin-top: -1.4rem;
    padding: 0.2rem 0.6rem 0.2rem 0.6rem;
    width: fit-content;
}
div#showAllPosts p {
    font-size: var(--fs-base);
}
/**********************************************************************
 * List of posts
 *********************************************************************/
ol.posts {
    list-style-type: none;
    padding-left: 0px;
}
ol.posts li {
    margin-bottom: 0.8em;
}
ol.posts li:last-child {
    margin-bottom: 0px;
}
ol.posts li a {
    border-bottom: 1px dotted var(--colour-highlight-secondary);
    color: var(--colour-highlight-main);
    margin-bottom: 0.2em;
    padding-bottom: 0.12em;
    text-decoration: none;
}
ol.posts li a:visited {
    border-bottom-color: var(--colour-highlight-main-fade-more);
    color: var(--colour-highlight-main-fade);
}
ol.posts li span.details {
    font-size: var(--fs-sm);
    opacity: 0.4;
    padding-top: 0.2em;
}
ol.posts li span.details img {
    display: inline;
    margin-right: 0.24em;
    margin-top: -0.2em;
    vertical-align: middle;
    width: 1em;
}
ol.posts li span.details + span.details {
    margin-left: 0.4em;
}

/**********************************************************************
 * Post - Shown as a card
 *********************************************************************/
div.grid:has(div.post-card) {
    row-gap: 1em !important;
}
div.post-card {
    background-color: var(--colour-faded-bg);
    border-radius: 0.6rem;
    margin-bottom: 1em;
    padding: 1em;
}
div.post-card h2 {
    font-size: var(--fs-md);
    margin-top: 0px;
}
div.post-card h2:has(a) a {
    border-bottom: none;
}
div.post-card p:first-child:has(img) {
    margin-bottom: var(--fs-sm);
    margin-top: 0px;
}
div.post-card p.metadata,
p.metadata {
    color: var(--colour-fg-fade-less);
    font-size: 0.8rem;
    margin-bottom: 0.4rem;
}
div.post-card p.guidepost {
    color: var(--colour-fg-fade-less);
    font-size: var(--fs-sm);
}
div.post-card p.archive {
    border-left: 4px solid rgba(240,165,15,.22);
    padding-left: 0.4rem;
}
/**********************************************************************
 * Pagination
 *********************************************************************/
section nav.pagination {
    font-family: var(--sans);
    font-weight: 400;
}
section nav.pagination div:nth-of-type(1) {
    text-align: left;
}
section nav.pagination div:nth-of-type(2) {
    color: var(--colour-fg-fade);
    text-align: center;
}
section nav.pagination div:nth-of-type(3) {
    text-align: right;
}
section nav.pagination div[data-pagination-helper] p {
    font-size: var(--fs-xs);
    margin-top: -0.2rem;
}

/**********************************************************************
 * Posts
 *********************************************************************/
section.post:has(h1) {
    text-align: left;
    /*max-width: calc(var(--max-main-usable-width) + 7.6%);*/
}
section.post:has(h1) p.metadata {
    font-size: 1rem;
}
section.post:has(div:only-child) div:only-child {
    border-bottom: 1px solid var(--colour-fg-fade-more);
    border-top: 1px solid var(--colour-fg-fade-more);
    color: var(--colour-fg-fade-less);
    font-style: italic;
    margin-bottom: 0.4em;
    margin-top: -1em;
    padding: 0.2em 0px 0.2em 0px;
}
section.post:has(div:only-child) div:only-child p {
    margin-bottom: 0.6em;
    margin-top: 0.6em;
}
article.grid {
    grid-template-columns: 1fr;
}
article.grid * {
    margin-left: 0px;
}
article.post {
}
article.post blockquote {
    border-left: 3px solid var(--colour-highlight-secondary);
    font-size: var(--fs-base) !important;
    font-weight: 400;
    line-height: var(--fs-md);
    padding-bottom: 1em;
    padding-left: 1em;
    padding-top: 1em;
}
article.post li {
    margin-bottom: 0.4em;
}
ul.tags {
    color: var(--colour-fg-fade-slightly-less);
    list-style-type: none;
    margin-top: 0.2em;
    padding-left: 0px;
}
ul.tags li {
    display: inline;
    padding-left: 0.2em;
    padding-right: 0.4em;
    padding-top: 0.2em;
}
ul.tags li:first-child {
    border-right: none;
    margin-right: -0.2em !important;
    padding-right: 0px;
}
ul.tags li:last-child {
    border-right: none;
    margin-right: 0px;
}
ul.tags li:first-child img {
    display: inline;
    margin-right: 0.2em;
    opacity: 0.6;
    vertical-align: middle;
}
ul.tags a {
    border-bottom: 1px dotted var(--colour-highlight-main-fade);
    color: var(--colour-fg-fade-slightly-less);
    font-size: var(--fs-sm);
    text-decoration: none;
    padding-bottom: 0.2rem;
}
ul.tags a:visited {
    border-color: var(--colour-highlight-secondary-fade);
    color: var(--colour-fg-fade-less);
}
ul.tags svg.fake-border {
    height: 40%;
    margin-left: 0.4em;
    opacity: 0.1;
    padding-top: 0.2em;
    width: 1px;
}
ul.tags li:last-child svg.fake-border {
    display: none;
}

/**********************************************************************
 * List of posts
 *********************************************************************/
ul.posts {
    border-collapse: separate;
    border-spacing: 0 1rem;
    display: table;
    list-style-type: none;
    padding-left: 0px;
}
ul.posts li {
    display: table-row;
    margin-bottom: 1rem;
    overflow: hidden;
}
ul.posts li div {
    display: table-cell;
}
ul.posts li div:first-child {
    width: 8rem;
}
ul.posts li span:first-child {
    color: var(--colour-fg-fade-less);
    font-family: var(--mono);
    font-size: var(--fs-sm);
    margin-right: 0.4rem;
}
ul.posts li a {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    margin-right: inherit !important;
}

/**********************************************************************
 * Archive post support
 *********************************************************************/
article.tag-archive {}
article.tag-archive table {
    border-collapse: collapse;
    margin-top: 1rem;
}
article.tag-archive table th {
    background-color: var(--colour-highlight-secondary) !important;
    color: var(--colour-bg);
    font-family: var(--sans);
    font-weight: 800;
    text-align: left;
}
article.tag-archive table th, article.tag-archive td {
    padding: calc(var(--fs-xs) / 2);
}
article.tag-archive table tr:nth-of-type(even) {
    background-color: var(--colour-highlight-main-fade-more);
}
article.tag-archive hr {
    margin-top: 2rem;
}
div.grid.half-half.talk.kg-width-wide div {
    border-top: 1px solid var(--colour-bg);
    margin-top: var(--fs-lg);
    padding-top: 0.36rem;
}
div.grid.half-half.talk.kg-width-wide div:nth-child(even) {
    border-top: 1px solid var(--colour-fg-fade-more) !important;
}
div.fitvidsForceIgnore {
    margin-top: 1rem;
    text-align: center;
}
/* Custom Twitter threads */
div.tweet {
    border-bottom: 1px solid var(--color-shadow-3-50);
    margin-bottom: 1rem;
    padding-bottom: 2rem;
}
div.tweet img {
    maring-bottom: 1rem !important;
    margin-top: 1rem;
    max-width: 100% !important;
    width: auto !important;
}
div.tweet p.tweet-link, p.tweet-position {
    font-family: var(--sans);
    font-size: var(--fs-xs);
    text-align: right;
}
div.tweet p.tweet-link img {
    border-radius: 50%;
    margin-right: 0.4rem;
    margin-top: 0px;
    vertical-align: middle;
    width: 24px !important;
}
div.tweet p + p.tweet-link {
    margin-top: -1.2rem;
}
p.tweet-position {
    text-align: left;
}
p.tweet-position a + span {
    border-left: 1px solid var(--color-shadow-3-50);
    margin-left: 0.4rem;
    padding-left: 0.2rem;
}
a[name="start_of_thread"] {
    margin-top: 1rem;
}
img.icon {
    display: inline;
    width: 32px;
    vertical-align: middle;
}
.tag-archive a[name] {
    border-bottom: none;
}

/**********************************************************************
 * Embeds
 *********************************************************************/
iframe.form {
    width: 100%;
}

/**********************************************************************
 * Ghost classes
 *********************************************************************/
.kg-card {
}
img.kg-image {
    height: auto;
    width: 100%;
}
.kg-card iframe {
    aspect-ratio: 16 / 9;
    height: 100%;
    width: 100%;
}
.kg-embed-card {
    /* min-height: 270px; */
    /* min-width: 480px; */
    /* padding-bottom: 56.25%; /* 16:9 of the videos */
    position: relative;
}
.kg-product-card .kg-product-card-description ol, .kg-product-card .kg-product-card-description ul {
    font-size: var(--fs-base) !important;
}

.kg-audio-card {
}
.kg-audio-thumbnail {
}
.kg-audio-thumbnail.placeholder {
}
.kg-audio-player-container {
}
.kg-audio-title {
}
.kg-audio-player {
}
.kg-audio-current-time {
}
.kg-audio-time {
}
.kg-audio-duration {
}
.kg-audio-play-icon {
}
.kg-audio-pause-icon {
}
.kg-audio-hide {
}
.kg-audio-seek-slider {
}
.kg-audio-playback-rate {
}
.kg-audio-unmute-icon {
}
.kg-audio-mute-icon {
}
.kg-audio-volume-slider {
}
.kg-before-after-card {
}
.kg-before-after-card-image-before {
}
.kg-before-after-card-image-after {
}
.kg-before-after-card-slider-handle {
}
/* .kg-blockquote-alt {} => integrated with blockquote */
.kg-bookmark-card {
}
.kg-bookmark-publisher {
}
.kg-bookmark-container {
}
.kg-bookmark-content {
}
.kg-bookmark-title {
}
.kg-bookmark-description {
}
.kg-bookmark-metadata {
}
.kg-bookmark-icon {
}
.kg-bookmark-author {
}
.kg-bookmark-thumbnail {
}
.kg-button-card {
}
.kg-btn {
}
.kg-btn-accent {
}
.kg-callout-card,
.kg-toggle-card {
    border-radius: 1rem !important;
    margin-bottom: 0.6rem !important;
    margin-top: 0.6rem !important;
}
.kg-callout-card p:first-child {
    margin-top: 0px;
}
.kg-callout-card-legacy p {
}
.kg-callout-card-grey {
}
.kg-callout-card-white {
}
.kg-callout-card-blue {
}
.kg-callout-card-green {
}
.kg-callout-card-yellow {
}
.kg-callout-card-red {
}
.kg-callout-card-pink {
}
.kg-callout-card-purple {
}
.kg-callout-card-accent {
}
.kg-callout-emoji {
}
.kg-callout-text {
}
p + .kg-card.kg-file-card {
    margin-top: 1rem;
}
.kg-file-card {
}
.kg-file-card-container {
}
.kg-file-card-contents {
}
.kg-file-card-title {
}
.kg-file-card-caption {
}
.kg-file-card-metadata {
}
.kg-file-card-filename {
}
.kg-file-card-filesize {
}
.kg-file-card-icon {
}
.kg-file-card-medium {
}
.kg-file-card-small {
}
.kg-gallery-card {
}
figure.kg-card.kg-image-card {
    text-align: center;
}
figure.kg-card.kg-image-card img.kg-image {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
    text-align: center;
    width: auto !important;
}
.kg-image-card {
}
.kg-gallery-card {
}
.kg-gallery-container {
}
.kg-gallery-row {
}
.kg-gallery-image {
}
.kg-header-card {
}
.kg-header-card-header {
}
.kg-header-card-subheader {
}
.kg-header-card-button {
}
.kg-nft-card {
}
.kg-nft-card-container {
}
.kg-nft-metadata {
}
.kg-nft-image {
}
.kg-nft-header {
}
.kg-nft-title {
}
.kg-nft-opensea-logo {
}
.kg-nft-creator {
}
.kg-nft-description {
}
.kg-product-card {
}
.kg-product-card-container {
}
.kg-product-card-image {
}
.kg-product-card-title-container {
}
.kg-product-card-title {
}
.kg-product-card-description {
}
.kg-product-card-rating {
}
.kg-product-card-rating-star {
}
.kg-product-card-button {
}
.kg-product-card-btn-accent {
}
.kg-toggle-card {
}
.kg-toggle-content {
}
.kg-toggle-heading {
}
.kg-toggle-heading-text {
}
.kg-toggle-card-icon {
}
.kg-video-card {
}
.kg-video-container {
}
.kg-video-overlay {
}
.kg-video-large-play-icon {
}
.kg-video-player-container {
}
.kg-video-player {
}
.kg-video-current-time {
}
.kg-video-time {
}
.kg-video-duration {
}
.kg-video-play-icon {
}
.kg-video-pause-icon {
}
.kg-video-hide {
}
.kg-video-hide-animated {
}
.kg-video-seek-slider {
}
.kg-video-playback-rate {
}
.kg-video-unmute-icon {
}
.kg-video-mute-icon {
}
.kg-video-volume-slider {
}
.kg-width-full {
}
.kg-width-wide {
}

/**********************************************************************
 * Talks using the Product card
 *********************************************************************/
body:has([data-post-type="is-talk"]) .kg-product-card {
    background: none;
    border-top: 1px solid var(--colour-fg-fade-more) !important;
    margin-top: var(--fs-sm);
    padding-top: 0.36rem;
    position: relative;
}
body:has([data-post-type="is-talk"]) div.kg-product-card:first-of-type {
    margin-top: 1rem;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container { /* contains an img + 2 divs */
    background: none !important;
    border: 0px solid var(--colour-bg) !important;
    box-shadow: none;
    display: grid;
    font-family: var(--serif);
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    grid-column-gap: 1rem;
    min-width: 100%;
    padding: 0.4rem 0px 0.4rem 0px !important;
    row-gap: 1rem;
    margin-top: 0.4rem;
    margin-bottom: 0.4rem;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container img:first-child {
    display: block;
    grid-column: 1 / 2;
    grid-row: 1 / span 2;
    align-self: start;
    width: 100%;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container img {
    border: 1px solid var(--colour-fg-fade);
    border-radius: 0.8rem;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container .kg-product-card-title-container { /* has an H4 */
    grid-column: 2 / 2;
    align-self: start;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container .kg-product-card-description { /* has a p* */
    align-self: start;
    grid-column: 2 / 2;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container .kg-product-card-description p {
    color: var(--colour-fg) !important;
    font-size: var(--fs-base) !important;
    opacity: 1;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container .kg-product-card-description:empty {
    display: none;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container .kg-product-card-title-container:has(h4:empty) {
    display: none;
}
body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container:has(.kg-product-card-description:empty):has(.kg-product-card-title:empty) img:first-child {
    /* expand the img grid position when there is NOT a title or description */
    grid-column: 1 / span 2;
}

/**********************************************************************
 * Tumblelog
 *********************************************************************/
section.grid.list div.post-tumblelog-inline {
}
div.post-tumblelog-inline.first {
    border-top: none !important;
    margin-top: 0px !important;
}
div.post-tumblelog-inline {
    border-top: 1px dotted var(--colour-fg-fade);
    margin-top: 1em;
    padding-top: 0px;
}
div.post-tumblelog-inline metadata {
    margin-top: 0px;
}
div.post-tumblelog-inline h2 {
    font-size: var(--fs-base) !important;
    margin-top: 0px;
}
div.post-tumblelog-inline h2 a {
    border-bottom: none;
    text-decoration: none;
}
div.post-tumblelog-inline p:nth-of-type(2) {
    margin-top: 0px;
}
span.truncate-for-list {
    color: var(--colour-fg-fade-less);
    overflow: hidden;
    padding-left: 1rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/**********************************************************************
 * Reference lists
 *********************************************************************/
.kg-toggle-card ul {
    list-style-type: none;
    padding-left: 0px;
}
.kg-toggle-card ul li {
    margin-bottom: 0.4rem;
}
.kg-toggle-card ul li span:first-child {
    color: var(--colour-fg-fade-less);
    font-family: var(--mono);
    font-size: var(--fs-sm);
    margin-right: 0.4rem;
}
.kg-toggle-card ul li a span:first-child {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    margin-right: inherit !important;
}

/**********************************************************************
 * Screen sizes
 * reference: https://css-tricks.com/snippets/css/media-queries-for-standard-devices/
 *********************************************************************/
@media only screen and (max-width: 480px) {
    /* Phones */
    body {
        padding: 1rem;
    }
    section.header {
        grid-template-areas: "a" "b" "c";
        grid-template-columns: 1fr !important;
        margin-bottom: 1em;
        margin-top: 0px;
    }
    section.header div:first-child {
        grid-area: b;
    }
    section.header + section {
        margin-top: 0px;
    }
    .quarters {
        grid-template-columns: 1fr !important;
    }
    .thirds {
        grid-template-columns: 1fr !important;
    }
    .two-thirds-one-third {
        grid-template-columns: 1fr !important;
    }
    .two-thirds-one-third div ul li:first-child {
        margin-bottom: -0.4rem;
    }
    .half-half {
        grid-template-columns: 1fr !important;
    }
    .half-half div {
        margin-bottom: 1.4em;
    }
    .span-col-all {
        grid-column: span 1;
    }
    section.level-set {
        margin-left: 0px;
        margin-right: 0px;
        margin-top: -3.4rem !important;
        width: 100%;
    }
    .superwide {
        width: 100%;
    }
}
@media only screen and (max-width: 624px) {
    /* For talk post w/a series of slides, collapse a bit before phone size */
    body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container {
        grid-template-columns: 1fr !important;
    }
    body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container img, body:has([data-post-type="is-talk"]) .kg-product-card .kg-product-card-container div {
        grid-column: span 2 !important;
        grid-row: auto !important;
    }
    /* For post cards */
    div.post-card {
        grid-column: span 2 !important;
    }
    /* For post lists */
    ul.posts li div:first-child {
        display: none;
    }
}
@media only screen and (max-width: 1024px) {
    /* Tablets */
    body {
        padding: 2.4rem;
    }
    .quarters {
        grid-template-columns: 1fr 1fr !important;
    }
    .thirds {
        grid-template-columns: 1fr 1fr !important;
    }
    .two-thirds-one-third {
        grid-template-columns: 1fr 1fr !important;
    }
    .span-col-all {
        grid-column: span 2;
    }
    section.level-set {
        margin-left: 0px;
        margin-right: 0px;
        margin-top: -3.4rem !important;
        width: 100%;
    }
    .superwide {
        width: 100%;
    }
}
