/* Base theme for Textual.js */
@import url('https://fonts.googleapis.com/css?family=PT+Serif:400,400i,700,700i|Montserrat:400,500,700|Roboto+Mono:400,700');

*[templatejs] { display: none; }

/* --- reset --- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, rem, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, rembed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    box-sizing: border-box;

    -webkit-text-size-adjust: 100%;
    font-variant-ligatures: none;
    -webkit-font-variant-ligatures: none;
    text-rendering: optimizeLegibility;
    font-synthesis: none;
}
html, body {
    height: 100%;
    /* text-wrap: balance; */
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}


:root {
    --main-bg: #faf7f1;
    --darker-bg: #f5f0e7;
}
html {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-family: "PT Serif", Georgia, Times, serif;
    font-size: 18px;
    font-size: 1.25rem;
    font-synthesis: none;
    font-weight: 400;
    letter-spacing: -1.5%;
    line-height: 1.5;
    text-rendering: optimizeLegibility;
    background: var(--main-bg);
}

body {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    background: var(--main-bg);
    color: #413f3f;
    margin: 0;
}

body * {
    box-sizing: border-box;
}

.sans-serif {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}
.serif {
    font-family: "PT Serif", Georgia, Times, serif;
}

.tight {
    margin-bottom: 0!important;
    margin-top: 0!important;
    padding-bottom: 0!important;
    padding-top: 0!important;
}

.tight-top {
    margin-top: 0!important;
    padding-top: 0!important;
}

.tight-bottom {
    margin-bottom: 0!important;
    padding-bottom: 0!important;
}

.float-left {
    float: left;
}

.float-right {
    float: right;
}

.text-muted, a.text-muted, .text-muted a {
    color: gray;
}
a.inherit, .inherit {
    color: inherit
}
a.inherit-on-rest:not(:hover) {
    color: inherit
}
.desktop-show, .mobile-hide {
    display: block!important;
}

.desktop-show-inline, .mobile-hide-inline {
    display: inline!important;
}

.hidden, .desktop-hide, .mobile-show, .desktop-hide-inline, .mobile-show-inline {
    display: none!important;
}

@media only screen and (max-width: 959px) {
    .desktop-show, .mobile-hide, .desktop-show-inline, .mobile-hide-inline {
        display: none!important;
    }
    .desktop-hide-inline, .mobile-show-inline {
        display: inline!important;
    }
    .desktop-hide, .mobile-show {
        display: block!important;
    }
}

.clearfix {
    *zoom: 1;
}

.clearfix:before, .clearfix:after {
    content: "";
    display: table;
    line-height: 0;
}

.clearfix:after {
    clear: both;
}

oembed {
    display: block;
    margin: 20px 0;
}

a {
    -moz-transition: all .25s ease;
    -ms-transition: all .25s ease;
    -o-transition: all .25s ease;
    -webkit-transition: all .25s ease;
    /* color: #268bd2; */
    color: #dc3c5f;
    text-decoration: none;
    cursor: pointer;
    font-weight: 600;
}

/* a:hover {
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    box-shadow: inset 0 -1.5px 0;
    text-decoration: none !important;
    cursor: pointer;
} */
a strong {
    color: inherit;
}

a:hover, a:focus {
    text-decoration: underline;
}

h1, h2, h3, h4, h5, h6 {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    color: #313131;
    font-family: system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -1.5%;
    line-height: 1.4;
    margin-bottom: .5rem;
    margin-bottom: .5rem;
}

h1 {
    font-weight: 700;
    font-size: 2.125rem;
    letter-spacing: -2%;
    line-height: 1.1;
    margin-bottom: 1rem;
    margin-top: 0;
}
h2 {
    font-size: 1.35rem;
    margin-bottom: .75rem;
    margin-top: 1.75rem;
}
h3 {
    font-size: 1.1rem;
    margin-top: 1.75rem;
}
h5 {
    font-size: 0.9rem;
    letter-spacing: 0;
    margin: 1rem 0;
}
h4 {
    margin: 1rem 0;
    /* text-transform: uppercase; */
}
h6 {
    font-size: 78%;
    font-weight: 400;
    margin-bottom: 1rem;
    margin-top: 0;
}

p {
    margin-bottom: .8rem;
    margin-top: 0;
}
article p, article p ~ ul li, article p ~ ol li, article blockquote ~ ul li, article blockquote ~ ol li {
    font-size: 17.5px;
    line-height: 1.6;
}

ul, ol, dl {
    margin: 0 0 1.5rem .2rem;
    padding: 0 1rem 0 1.5rem;
}


.zoom-md {
    zoom: .92;
}
.text-sm {
    font-size: 86%;
    line-height: 1.25;
}
.text-xs {
    font-size: 82%;
    line-height: 1.25;
}
.text-xxs {
    font-size: 76%;
    line-height: 1.25;
}
.zoom-sm {
    zoom: .88;
    line-height: 1.5;
}

.zoom-xs {
    zoom: .72;
}

.zoom-lg {
    zoom: 1.12;
}

.zoom-xl {
    zoom: 1.28;
}

table {
    border: 0;
    border-bottom: 2px solid rgba(155, 50, 80, .25);
    border-top: 2px solid rgba(155, 50, 80, .25);
}

table th {
    background: #f2ede3;
    border: 0;
    border-bottom: 1px solid rgba(155, 50, 80, .2);
    color: #b84c69;
}

table td {
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(155, 50, 80, .2);
    border-color: rgb(184, 76, 105, .5);
}

table tr td:first-of-type {
    white-space: nowrap;
}

main ol {
    margin-top: -.5rem;
}

main ul {
    list-style-type: none;
}
main ul li {
    position: relative;
}
main ul li:before {
    position: absolute;
    left: -1.25rem;
    top: .08rem;
    content: '\2022';
    font-size: 140%;
    line-height: 1;
}
main .post-tags ul li:before{
    top: auto;
    left: auto;
}

dd {
    margin-bottom: .5rem;
}

hr {
    background: none;
    border: 0;
    border-top: 1px solid rgb(184, 76, 105, .5);
    height: 1px;
    margin: 1.5rem 0 2rem;
}

hr:before {
    background: #fff;
    content: "";
    display: block;
    height: 5px;
    left: calc(50% - 8px);
    margin-top: -3px;
    position: relative;
    width: 16px;
}

hr:after {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 50%;
    content: "";
    display: block;
    height: 7px;
    left: calc(50% - 4px);
    margin-top: -7px;
    position: relative;
    width: 7px;
}

mark {
    background-color: #ffc;
    border-radius: 3px;
    padding: .15em .25em .05rem;
}

abbr {
    color: #555;
    font-size: 85%;
    font-weight: 700;
    text-transform: uppercase;
}

abbr[title] {
    border-bottom: 1px dotted #e5e5e5;
    cursor: help;
}

code, pre {
    direction: ltr!important;
    font-family: "Roboto Mono", Menlo, Monaco, Consolas, "Courier New", monospace;
    font-weight: 400;
    -webkit-font-smoothing: subpixel-antialiased;
}

code {
    background-color: #f9f9f9;
    border-radius: 3px;
    color: #d6405c;
    font-size: 92.5%;
    letter-spacing: -.025rem;
    padding: .2em .25em;
    -webkit-font-smoothing: subpixel-antialiased;
}

code.lang-text {
    background-color: #f9f9f9;
}

pre {
    border-radius: 5px;
    display: block;
    font-size: .72rem;
    line-height: 1.5;
    margin-bottom: 1rem;
    margin-top: 0;
    white-space: pre;
    white-space: pre-wrap;
    word-break: break-all;
    word-wrap: break-word;
}

pre code {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    background-color: transparent;
    color: inherit;
    display: block;
    font-size: 100%;
    padding: 0;
    padding: 1rem 1rem 1rem 1rem!important;
}

code.language-text {
    /* padding: 1rem 1rem 1rem 2.5rem!important; */
}
pre code.hljs-line-numbers {
    border-radius: 5px 0 0 5px;
    border-right: 1px solid rgba(0, 0, 0, .05);
    color: rgba(0, 0, 0, .2);
    min-width: 20px;
    padding: 1rem .25rem 1rem .75rem!important;
    max-width: calc(20px + 2rem);
}
pre:has(code.language-mermaid) .hljs-line-numbers {
    display: none;
}
pre:has(code.language-mermaid) code {
    background-color: transparent !important;
    padding: 0 !important;
}
.hljs {
    white-space: pre;
    word-wrap: normal;
}

pre code.hljs:nth-of-type(2) {
    max-width: calc(100% - 2rem - 1px)
}

blockquote {
    border: 0;
    color: #b63151;
    display: block;
    font-size: 112%;
    /* margin: 1rem 0 1rem .1rem; */
    margin: 1.2rem 0 .8rem .1rem;
    padding: .25rem 0 .25rem 1rem;
    quotes: "\201C""\201D""\2018""\2019";
    -webkit-font-smoothing: subpixel-antialiased;
    border-left: 4px solid rgba(182, 49, 81, .8);
}

blockquote:after {
    clear: both;
    content: "";
    display: block;
}

/* blockquote:before {
    color: rgba(182, 49, 81, .8);
    content: open-quote;
    display: block;
    float: left;
    font-family: Georgia, Time, serif;
    font-size: 5em;
    line-height: 1;
    margin: -0.75rem 0 0 -3.25rem;
    position: absolute;
} */

blockquote strong {
    color: #666;
}

blockquote p:last-child {
    margin-bottom: 0;
}

main, body.home .post:last-of-type hr,
body.author .post:last-of-type hr,
body.category .post:last-of-type hr,
body.tag .post:last-of-type hr {
    display: none;
}

strong, dt {
    font-weight: 700;
}

@media only screen and (min-width: 30em) {
    blockquote {
        padding-left: 1.25rem;
    }
}

figure {
    overflow: auto;
}

figure, img {
    display: block;
    margin: 0 auto 1rem;
    max-width: 100%;
}

figure img {
    margin: 0 auto 6px;
    max-width: 100%;
}

figure figcaption:before {
    content: '\e800';
    float: left;
    font-family: "fontello";
    font-size: 15px;
    line-height: 15px;
    margin-left: 1px;
    margin-right: 5px;
    margin-top: -1px;
}

figure figcaption {
    -moz-osx-font-smoothing: auto;
    -webkit-font-smoothing: subpixel-antialiased;
    color: #bbb;
    font-family: system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 13px;
    letter-spacing: 0;
    letter-spacing: -.015rem;
    line-height: 15px;
}

.container {
    background: var(--main-bg);
    display: table;
    height: 100%;
    margin: auto;
    max-width: 100%;
    width: 100%;
}

.post-meta {
    -moz-osx-font-smoothing: auto;
    -webkit-font-smoothing: subpixel-antialiased;
    color: #bbb;
    font-family: system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 64%;
    font-weight: 500;
    letter-spacing: -.015rem;
    padding-bottom: 1rem;
    text-transform: uppercase;
}

.post-meta .post-date,
.post-meta .post-author,
.post-meta .post-category,
.post-meta .post-tags {
    display: inline-block;
}

.post-meta .post-date,
.post-meta .post-author,
.post-meta .post-category ul,
.post-meta .post-tags ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.post-meta .post-date,
.post-meta .post-author,
.post-meta .post-category ul li,
.post-meta .post-tags ul li {
    float: left;
    margin: 0 .5rem 0 0;
    padding: 0;
}

.post-meta .post-date:before,
.post-meta .post-author:before,
.post-meta .post-category ul li:before,
.post-meta .post-tags ul li:before {
    color: inherit;
    content: "";
    font-size: 100%;
    line-height: 1;
    margin: 0;
    margin: 0 2px 0 0;
    padding: 0;
    position: relative;
}

.post-meta .post-tags ul li:before {
    content: "#";
    margin: 0;
    padding: 0;
}

.cover-image {
    background-position: 50%;
    background-size: cover;
    border: 0;
    display: none;
    height: 60vh;
    margin: -1.5rem 0 1rem;
    min-height: 180px;
}
.cover-image ~ .attribution {
    margin-top: -1rem;
    font-size: 14px;
    text-align: center;
    margin-bottom: 1rem;
}
.cover-image ~ .attribution a {
    color: inherit;
}
h1.page-title {
    margin-bottom: 2rem;
    font-size: 2rem;
}

.home h1.page-title {
    margin-bottom: .5rem;
}

h1.post-title a,
h1.page-title a {
    color: inherit;
    text-decoration: none;
}
h2.post-lead {
    font-size: 1.15rem;
    line-height: 1.5;
    margin-bottom: 1.25rem;
    margin-top: 0rem;
    color: #666;
    font-weight: 400;
    /* -webkit-font-smoothing: subpixel-antialiased; */
}

.page-header {
    border-bottom: 1px solid #f5f5f5;
    text-align: center;
}

.author .page-header {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
}

.author-page-title,
.tag-page-title,
.category-page-title {
    clear: both;
}

.tag-page-title:before {
    color: #ccc;
    content: '#';
    font-size: 72%;
    font-weight: 500;
    margin-left: 0;
    margin-right: 2px;
}

.author-page-avatar {
    display: block;
    margin: 0 0 -4.5rem;
    padding-bottom: 2rem;
    padding-top: 1px;
}

.author-page-avatar img {
    border: 1px solid #e9e9e9;
    border-radius: 50%;
    display: block;
    height: 112px;
    margin: 0 auto;
    padding: 7px;
    width: 112px;
}

.author-page-avatar:before,
.author-page-avatar:after {
    border-top: 1px solid #f2f2f2;
    clear: both;
    content: "";
    display: block;
    position: relative;
    width: calc(50% - 64px);
}

.author-page-avatar:before {
    margin-bottom: -64px;
    margin-top: 64px;
}

.author-page-avatar:after {
    float: right;
    margin-bottom: 64px;
    margin-top: -64px;
}

figure a,
.post-meta .post-date a,
.post-meta .post-author a,
.post-meta .post-category ul li a,
.post-meta .post-tags ul li a,
.post-title a,
.page-title a {
    color: inherit;
}

@media only screen and (max-width: 767px) {
    html {
        font-size: 18px;
        font-size: 1.125rem;
    }
    h1 {
        letter-spacing: -.04rem;
        zoom: .84;
    }
    .cover-image {
        margin-bottom: 2rem;
        max-height: 250px;
    }
}

.valign-outer {
    display: table;
}

.valign-inner {
    display: table-cell;
    vertical-align: middle;
}
.print-only, .print-page-break {
    display: none;
}

.printer {
    height: 24px;
    display: block;
    width: 34px;
    font-size: 24px;
    line-height: 24px;
    margin: 0 0 24px 0 !important;
}
.printer:hover {
    color: #98143e;
}

.post-comments {
    margin-top: 0;
    padding-top: 0;
}

.page-header {
    border-bottom: 1px solid #f5f0e6;
    text-align: center;
}

body.home #intro p {
    margin: .8rem 0;
}

code, code.lang-text {
    background-color: #f2ede3 !important;
    border: 0;
}

pre {
    border-radius: 0;
}

p {
    margin-bottom: 1rem;
    margin-top: 1rem;
}

p:first-of-type {
    margin-top: 0;
}

@media print {
    body.post .post-meta {
        margin-top: -0.5rem;
    }
}

main ul li {
    margin-bottom: .25rem;
}

main ul li:before {
    /* margin-top: .65rem; */
}


hr:before {
    background: #fff1e1;
}

hr:after {
    background: #fff1e1;
    border-color: rgb(184, 76, 105, .5);
}

figure figcaption {
    color: rgb(184, 76, 105, .5);
    margin-bottom: 1.5rem;
}

figure img {
    margin: 0 0 6px;
    width: 100%;
}

figure, img {
    display: inline;
    margin: 0;
    max-width: 100%;
}

figure.fullpage {
    border-color: rgba(155, 50, 80, .1);
}

.author-page-avatar img {
    border-color: rgb(184, 76, 105, .5);
}

.author-page-avatar:before, .author-page-avatar:after {
    border-color: rgba(155, 50, 80, .25);
}

.post-content {
    margin-top: 1.5rem;
}

body.post .post-content {
    border-top: 1px solid rgba(155, 50, 80, .1);
    margin-top: 0;
    padding-top: 1.5rem;
}
body.post .post-content:has(.cover-image) {
    border-top: 0;
}


.post-meta, main ul li:before {
    color: rgb(184, 76, 105, .75);
}

.slides-wrapper {
    background: gray;
    border-radius: 3px;
    box-shadow: 0 2px 0 rgba(0, 0, 0, .1);
    color: #fff;
    font: 12px/32px arial, sans-serif;
    padding-left: 10px;
    text-align: left;
}

.slides-wrapper div {
    border: 1px solid gray;
    border-bottom: 0;
    height: 0;
    margin-left: -10px;
    padding-bottom: 56.25%;
    position: relative;
}

.slides-wrapper div iframe {
    border: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
}

.slides-wrapper button {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    background: transparent;
    border: 0;
    color: #fff;
    cursor: pointer;
    float: right;
    font: 18px/1 arial, sans-serif;
    font-synthesis: none;
    height: 32px;
    padding: 0 5px;
    text-rendering: optimizeLegibility;
}

.slides-wrapper button:hover {
    text-decoration: underline;
}

ul.tabs {
    border-bottom: 1px solid rgb(184, 76, 105, .5);
    list-style-type: none;
    margin: 0 0 2rem;
    padding: 0;
    width: 100%;
}

ul.tabs::after {
    clear: both;
    content: "";
    display: table;
}

ul.tabs li {
    display: inline-block;
    margin-bottom: -1px;
}

ul.tabs li.mobile-menu {
    display: none;
    float: right;
}

ul.tabs li a {
    -moz-transition: none;
    -ms-transition: none;
    -o-transition: none;
    -webkit-transition: none;
    box-shadow: none;
    color: #6a6464;
    display: block;
    line-height: 1;
    padding: .9rem 1.1rem .8rem;
    text-align: center;
    text-decoration: none;
    text-decoration: none;
    transition: none;
}

ul.tabs li a:hover {
    box-shadow: none;
    color: #6a6464;
    text-decoration: none;
}

ul.tabs li.active a {
    background: var(--main-bg);
    border: 1px solid rgb(184, 76, 105, .5);
    border-bottom: 0;
    border-radius: 5px 5px 0 0;
    color: #333;
    cursor: default;
    margin: 0 -1px;
    opacity: 1;
}

.tabs-content {
    margin: 1.5rem 0;
}

.tabs-content>div.active {
    display: block;
}

.newsletter {
    margin: 1rem auto;
    background: var(--darker-bg);
    /* box-shadow: 5px 5px 0 #b84c69; */
    padding: 2.5rem 1.5rem 1rem;
    position: relative;
    z-index: 1;
    /* width: calc(100% - 5px); */
}
.newsletter h3 {
    color: #b84c69
}
.newsletter button {
    margin-top: 10px;
    padding: 15px 20px;
    /* background: #3E4857; */
}
nav {
    background: var(--darker-bg);
    display: table-cell;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    height: 100%;
    left: 0;
    letter-spacing: 0;
    max-width: 400px;
    /* min-width: calc(128px + 2rem); */
    min-width: 320px;
    top: 0;
    vertical-align: top;
    width: 20%;
}

nav a:hover {
    -webkit-background-clip: none;
    background-clip: none;
    box-shadow: none;
    text-decoration: none;
}
nav img {
    pointer-events: none;
}
.pointer-events-none {
    pointer-events: none;
}
.mx-auto {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block;
}
nav .content {
    margin: 4rem 1.5rem 1rem;
    text-align: left;
    position: sticky;
    top: 4rem;
    height: calc(100dvh - 5rem);
}

@media only screen and (min-width: 960px) {
    nav .content a.home-link {
        position: absolute;
        right:10px;
    }
}
nav .content a.home-link:after {
    background: var(--main-bg);
    color: #333;
    content: '\e801';
    display: block;
    float: right;
    font-family: "fontello";
    font-size: 18px;
    line-height: 48px;
    margin: 0rem -2rem 0 -48px;
    text-align: center;
    text-decoration: none;
    width: 48px;
}

nav .content a.home-link:hover:after {
    content: '\e803';
}
nav .content a.newsletter-link {
    display: none;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: fit-content;
    border-radius: 6px;
    background: #e50049;
    color: #fff;
    float: right;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    margin: 0.725rem 1.25rem 0 0;
    padding: 11px 12px 11px 10px;
    text-align: center;
    text-decoration: none;
}
nav .content a.newsletter-link svg {
    width: 20px;
    height: 20px;
    margin-right: 6px;
    pointer-events: none;
}
nav footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}

header {
    display: block;
    margin: auto;
    text-align: left;
    width: 100%;
}

header a {
    outline: none;
}

img.avatar {
    -moz-transition: all .3s;
    -webkit-transition: all .3s;
    border-radius: 50%;
    display: block;
    margin: 0;
    max-width: calc(100% - 2rem);
    min-width: 72px;
    transition: all .3s;
    width: 84px;
}

header a:first-of-type:hover img.avatar {
    box-shadow: 0 5px 50px rgba(0, 0, 0, .15);
}

img.brand {
    display: block;
    margin: .25rem 0;
    max-width: calc(100% - 2rem);
    min-width: 120px;
    width: 156px;
}
header .icons {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: fit-content
}
header .icons a {
    color: #6a6464;
    margin: 0;
    padding: 0;
    text-decoration: none;
}

header .icons a i:before {
    -moz-transition: all .3s;
    -webkit-transition: all .3s;
    font-size: 24px;
    position: static;
    text-decoration: none;
    transition: all .3s;
    zoom: .92;
}

header .icons a i.icon-x:before {
    margin-right: .5em;
    zoom: .78;
}
header .icons a i.icon-linkedin:before {
    zoom: 1.3;
}
.flex-fit {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: fit-content
}

.post-footer {
    border-top: 1px solid rgba(155, 50, 80, .1);
    margin: 3rem 0 0;
    padding-top: 1rem;
    color: #b84c69;
}
.post-footer p {
    margin: 0 0 .5rem;
}
.post-footer .share-icons {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: fit-content
}
.post-footer .share-icon, .post-footer .share-icon:hover {
    text-decoration: none;
}
.post-footer .share-icon:before {
    color: #6a6464;
    font-size: 32px !important;
}
.post-footer .share-icon:first-of-type:before {
    margin-left: -.05em !important
}

a i.icon-x,
.icon-x:before,
a i.icon-x-squared,
.icon-x-squared:before,
a i.icon-github-circled,
.icon-github-circled:before,
a i.icon-podcast,
.icon-podcast:before,
a i.icon-linkedin,
.icon-linkedin:before {
    cursor: pointer;
}

a:hover i.icon-x,
.icon-x:hover:before,
a:hover i.icon-x-squared,
.icon-x-squared:hover:before,
a:hover i.icon-github-circled,
.icon-github-circled:hover:before,
a:hover i.icon-podcast,
.icon-podcast:hover:before,
a:hover i.icon-linkedin,
.icon-linkedin:hover:before {
    color: #dc3c5f;
}

a:hover i.icon-angellist,
.icon-angellist:hover:before {
    color: #000;
}
a:hover i.icon-linkedin-squared,
.icon-linkedin-squared:hover:before {
    color: #0977b1;
}
a i.icon-podcast,
.icon-podcast:before {
    margin-left: 4px;
    padding-top: 2px;
}
.post-share .icon-share-squared:before,
.post-share .icon-share-facebook:before {
    margin: 0 0 0 .1em;
    zoom: 1;
}

a:hover i.icon-share-squared,
.icon-share-squared:hover:before {
    color: #ff6a00;
}
a:hover i.icon-facebook,
.icon-facebook:hover:before {
    color: #325896;
}

footer ul {
    font-size: 14px;
    list-style: none;
    margin: 3rem 0 0;
    padding: 0;
}

footer ul li {
    float: left;
    font-weight: 700;
    padding: 0;
    padding-right: 8px;
}

footer ul li a, footer ul li a:hover {
    color: #6a6464;
}

footer ul li a:hover {
    color: #222;
}

footer ul li.active a {
    color: #98143e;
}

footer ul li:last-of-type {
    padding: 0;
}

.footer p {
    -webkit-font-smoothing: subpixel-antialiased;
    font-size: 13px;
    margin: 2px 0;
}

.footer .ext-links {
    margin: 2rem 0 1rem;
}

.footer .ext-links a {
    margin-right: 10px;
}

.footer .ext-links a img {
    max-width: 64px;
}

.footer .ext-links a:hover {
    opacity: .9;
}

main {
    display: table-cell;
    padding: 0 calc(20% + 2rem) 0 2rem;
    vertical-align: top;
}

main .content {
    margin: 4.25rem auto 2rem;
    max-width: 640px;
    width: 100%;
}

.cover-image {
    background-image: url(../img/bigdata.jpg);
    border-radius: 0.625rem;
    display: block;
    height: 40vh;
    margin: 2rem 0;
    width: 100%;
}

body.post .cover-image {
    margin: calc(-1.5rem - 2px) 0 1.5rem 0;
}

.archive-item {
    display: table;
    margin: 0 0 1.5rem;
    width: 100%;
}

.item-date {
    color: #b84c69;
    display: table-cell;
    font-size: 12px;
    font-weight: 500;
    padding-top: 3px;
    vertical-align: top;
    width: 100px;
}

.item-info {
    display: table-cell;
    font-size: 15px;
    line-height: 1;
    padding: 0 0 0 0;
    vertical-align: top;
}

.item-info h3 {
    font-size: 22px;
    line-height: 1.25;
    margin: 0 0 .25rem;
}

.item-info ul {
    border-bottom: 1px solid rgba(155, 50, 80, .1);
    font-size: 12px;
    font-weight: 500;
    list-style: none;
    margin: 0;
    padding: 0;
    padding-bottom: 1.25rem;
}

.item-info ul li {
    float: left;
    list-style: none;
    margin-right: .5rem;
}

.item-info ul li a {
    color: #b84c69;
    opacity: .7;
}

.item-info ul li a:hover {
    box-shadow: none;
    opacity: 1;
    text-decoration: none;
}

.item-info p {
    font-size: 16px;
    line-height: 1.5;
    margin: .5rem 0;
    opacity: .8;
}

.item-info:hover p {
    opacity: 1;
}

ul.tabs li:before,
.tabs-content>div,
.home nav .content a.home-link,
.item-info ul li:before {
    display: none;
}

.color-inherit, .item-info p a {
    color: inherit;
}

@media only screen and (max-width: 1439px) {
    main {
        padding: 0 2rem;
        padding: 0 calc(15% + 2rem) 0 2rem;
    }
    nav .content a.home-link:after {
        margin-right: -1rem;
    }
    nav .content {
        margin: 3rem 1rem 1rem;
    }
}

@media only screen and (max-width: 1279px) {
    nav .content a.home-link:after {
        font-size: 16px;
        line-height: 40px;
        margin: 0 -1rem 0 -40px;
        width: 40px;
    }
    header .icons {
        zoom: .86;
    }
    header .icons a {
        margin: 0 1px;
    }
    main {
        padding: 0 2rem;
    }
    footer p {
        font-size: 12px;
        margin: 10px 0;
    }
}

#copyrights {
    margin: 0.5rem 0 0.25rem;
    font-size: 13px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
}

@media only screen and (max-width: 959px) {
    nav .content {
        height: auto;
        position: relative;
        top: 0;
    }
    nav footer {
        position: relative;
    }
    nav .content a.newsletter-link {
        display: flex;
    }
    .container {
        margin: 0 1rem;
        width: calc(100% - 2rem);
    }
    .archive-item {
        border-bottom: 1px solid rgb(184, 76, 105, .5);
        display: block;
        padding-bottom: 1.25rem;
    }
    .home nav .content a.home-link {
        display: block;
    }
    .item-date {
        display: block;
        margin: 0 0 .5rem;
        padding: 0;
    }
    .item-info {
        display: block;
        padding: 0;
    }
    .item-info h3 {
        font-size: 22px;
        line-height: 1.2;
    }
    .item-info p {
        font-size: 15px;
        opacity: .9;
    }
    .item-info ul {
        border: 0;
        padding: 0;
    }
    nav {
        background: none;
        display: block;
        height: auto;
        margin: 0 -1.5rem;
        max-width: calc(100% + 3rem);
        width: calc(100% + 3rem);

        position: fixed;
        padding: 0 1rem;
        z-index: 99;
    }
    nav .content {
        margin: 0;
    }
    nav .content a.home-link:after {
        border: 1px solid #d6cfc7;
        border-radius: 5px;
        margin: 14px 0;
        opacity: .6;
    }
    header {
        background: var(--darker-bg);
        border-bottom: 1px solid #e9dad5;
        height: 80px;
        margin: 0;
        padding: 5px 1.5rem;
        width: 100%;
    }
    header img.avatar {
        float: left;
        margin: 7px 0;
        min-width: 56px;
        width: 56px;
        pointer-events: all;
    }
    header img.brand {

        display: none;
        /* float: left;
        margin: 17px 0 0 -10px;
        min-width: 128px;
        position: relative;
        width: 128px; */
    }
    header .icons {
        display: none;
    }
    footer ul {
        background: #f7efe5;
        box-shadow: 0 2px 2px rgba(0, 0, 0, .05);
        display: none;
        font-size: 14px;
        list-style: none;
        margin: 0;
        padding: 0;
        width: 100%;
    }
    footer ul li, footer ul li:last-of-type {
        border-bottom: 1px solid #e9dad5;
        float: none;
        font-weight: 700;
        padding: .8rem 1.5rem;
    }
    footer ul li a, footer ul li a:hover {
        color: #6a6464;
    }
    footer ul li.active a {
        color: #98143e;
    }
    .footer {
        /* border-top: 1px solid #e9dad5; */
        bottom: 0;
        /* padding: 1.5rem 0; */
        text-align: center;
        width: 100%;
        font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
    }

    .footer .ext-links {
        margin: 1rem 0;
    }
    main {
        display: block;
        margin: 7rem 0 0;
        padding: 0;
    }
    main .content {
        margin: 0 auto 3rem;
        max-width: 100%;
    }
    #copyrights {
        margin: 0.5rem 0 2rem;
        text-align: center;
    }
}

/* tiny */

.row {
    display: flex;
    flex-wrap: wrap;
}
.row .row { margin:  0 -1rem; }
.col      { padding: 0  1rem; }
.row.col { width: 100% !important; }

.row::after {
    content: "";
    clear: both;
    display: table;
}
.col,
.col-12, .col-11, .col-10, .col-9, .col-8, .col-7,
.col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {
    padding: 0.25rem 1rem;
    float: left;
    width: 100%;
    box-sizing: border-box;
    flex-grow: 1;
}
.col, .col-12 {
    float: none;
}

@media only screen and (min-width: 959px) {
    .col-11, .col-10, .col-9, .col-8, .col-7,
    .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {
        width: 50% ;
    }
}
@media only screen and (min-width: 767px) {
    .col-11 { width: 91.66%; }
    .col-10 { width: 83.33%; }
    .col-9 { width: 74.99%; }
    .col-8 { width: 66.66%; }
    .col-7 { width: 58.33%; }
    .col-6 { width: 50%; }
    .col-5 { width: 41.66%; }
    .col-4 { width: 33.33%; }
    .col-3 { width: 24.99%; }
    .col-2 { width: 16.66%; }
    .col-1 { width: 8.33%; }
}

.show {
    display: block;
}
.show-inline {
    display: inline-block;
}
.hide {
    display: none;
}

/* --- buttons --- */
button, .btn {
    background-color: #cccccc;
    color: black;
    border: 1px solid #c5c5c5;
    padding: 0.75rem 1.5rem;
    text-align: center;
    margin: 2px 0;
    text-decoration: none;
    display: inline-block;
    font: 15px/1 Helvetica, Arial, sans-serif;
    cursor: pointer;
    border-radius: 4px;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    box-sizing: border-box;
}
button:hover, .btn:hover {
    opacity: .85;
    box-shadow: 0 1px 10px rgba(0, 0, 0, .3);
    text-decoration: none;
}
.btn-block {
    width: 100%;
}
@media only screen and (max-width: 959px) {
    .btn-block-mobile {
        width: 100%;
    }
}
.btn-outline {
    background: transparent !important
}
.btn-shadow {
    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
}

button[disabled], .btn-disabled,
.btn-disabled:hover {
    box-shadow: none !important;
    opacity: 0.6 !important;
    cursor: not-allowed;
}
.btn-success, .btn-success:hover {
    color: white;
    background-color: #4CAF50;
    border-color: #28a745;
}
.btn-primary, .btn-primary:hover {
    color: white;
    background-color: #008CBA;
    border-color: #008cb0;
}
.btn-warning, .btn-warning:hover {
    color: rgba(0, 0, 0, .7);
    background-color: #ffc107;
    border-color: #ffc107;
}
.btn-danger, .btn-danger:hover {
    color: white;
    background-color: #c82333;
    border-color: #bd2130;
}
.btn-info, .btn-info:hover {
    color: white;
    background-color: #17a2b8;
    border-color: #06a6b9;
}
.btn-light, .btn-light:hover {
    color: #333;
    background-color: #e7e7e7;
    border-color: #dddddd;
}
.btn-light:hover {
    box-shadow: 0 1px 10px rgba(0, 0, 0, .2);
}
.btn-dark, .btn-dark:hover {
    color: white;
    background-color: #333333;
    border-color: #000000;
}
.btn-sm {
    padding: 0.55rem .8rem;
}
.btn-link {
    color: #09f;
    background-color: transparent;
    border-color: transparent;
}
.btn-link:hover {
    color: #268bd2;
    opacity: 1;
    text-decoration: underline;
    box-shadow: none !important
}
.btn-link-tight {
    color: #09f;
    background-color: transparent;
    border-color: transparent;
    padding-left: 0;
    padding-right: 0;
}
.btn-link-tight:hover {
    color: #268bd2;
    opacity: 1;
    text-decoration: underline;
    box-shadow: none !important;
}
.btn-outline.btn-success {
    color: #4CAF50;
}
.btn-outline.btn-primary {
    color: #008CBA;
}
.btn-outline.btn-warning {
    color: #ffc107;
}
.btn-outline.btn-danger {
    color: #c82333;
}
.btn-outline.btn-info {
    color: #17a2b8;
}
.btn-outline.btn-light {
    color: #666;
}
.btn-outline.btn-dark {
    color: #333333;
}
/* alerts */
.alert {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    padding: 0.75rem 1rem;
    text-align: center;
    margin: 1rem 0;
    text-decoration: none;
    border-radius: 4px;
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
}
.alert::before {
    content: '\2716';
    font-size: 82%;
    margin-top: 4px;
    float: right;
    cursor: pointer;
}
.alert-success {
    color: rgba(30, 90, 30, 1);
    background-color: rgba(75, 175, 80, .3);
    border-color:  rgba(75, 175, 80, .3);
}
.alert-primary {
    color: rgba(0, 140, 175, 1);
    background-color: rgba(0, 140, 175, .3);
    border-color:  rgba(0, 140, 175, .3);
}
.alert-warning {
    color: rgba(153, 85, 8, 0.7);
    background-color: rgba(255, 195, 5, .3);
    border-color:  rgba(255, 195, 5, .3);
}
.alert-danger {
    color: rgba(200, 35, 50, 1);
    background-color: rgba(200, 35, 50, .4);
    border-color:  rgba(200, 35, 50, .3);
}
.alert-info {
    color: rgba(25, 160, 185, 1);
    background-color:rgba(25, 160, 185, .2);
    border-color:rgba(25, 160, 185, .2);
}
.alert-light {
    color: #333;
    background-color: #f9f9f9;
    border-color: #dddddd;
}
.alert-dark {
    color: #000;
    background-color: rgba(51, 51, 51, .2);
    border-color: rgba(51, 51, 51, .2);
}
/* --- text --- */
.text-success {
    color: rgba(30, 90, 30, 1);
}
.text-primary {
    color: rgba(0, 140, 175, 1);
}
.text-warning {
    color: rgba(153, 85, 8, 0.7);
}
.text-danger {
    color: rgba(200, 35, 50, 1);
}
.text-info {
    color: rgba(25, 160, 185, 1);
}
.text-light {
    color: #333;
}
.text-dark {
    color: #000;
}
/* --- forms --- */
input, textarea, select {
    width: 100%;
    display: block;
    -webkit-font-smoothing: subpixel-antialiased;
    background: #fff;
    color: inherit;
    border: 1px solid #c5c5c5;
    /*padding: 0.65rem 0.6rem 0.6rem;*/
    padding: 11px 8px 10px;
    margin: 0;
    font: 15px/1 Helvetica, Arial, sans-serif;
    border-radius: 4px;
    -webkit-transition-duration: 0.2s;
    transition-duration: 0.3s;
    box-sizing: border-box;
    box-shadow: inset 1px 1px 1px rgba(0, 0, 0, .075);
}
.inline {
    width: auto;
    max-width: 100%;
    display: inline-block;
}
.field-success {
    border-top-color: #4CAF50;
}
.field-primary {
    border-top-color: #008CBA;
}
.field-warning {
    border-top-color: #ffc107;
}
.field-danger {
    border-top-color: #c82333;
}
.field-info {
    border-top-color: #17a2b8;
}
.field-light {
    border-top-color: #ccc;
}
.field-dark {
    border-top-color: #333333;
}

select {
    -moz-appearance: none;
    -webkit-appearance: none;
    padding: 11px 20px 10px 10px;
    min-width: 60px;
    box-shadow: none;
    background: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSdibGFjaycgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyB3aWR0aD0nMjQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PHBhdGggZD0nTTcgMTBsNSA1IDUtNXonLz48cGF0aCBkPSdNMCAwaDI0djI0SDB6JyBmaWxsPSdub25lJy8+PC9zdmc+) right 1px top 50% no-repeat;
    background-color: rgba(0, 0, 0, .025);
}
select::-ms-expand { display: none; }

input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: rgba(0, 155, 255, 1);
    box-shadow: inset 1px 1px 1px rgba(0, 0, 0, .1), 0 0 10px rgba(0, 155, 255, .5);
}
::placeholder { color: #ddd; }
::-webkit-input-placeholder { color: #ddd; }
::-moz-placeholder { color: #ddd; }
:-ms-input-placeholder { color: #ddd; }
:-moz-placeholder { color: #ddd; }
.form-container {
    display: inline-block;
}
.form-container :last-child {
    margin-right: .5rem;
}
.dir-rtl .form-container :last-child {
    margin-right: 0;
}
.form-container input, .form-container label {
    float: left;
    line-height: 1.2;
}
.form-container label {
    margin-left: .5rem;
    text-align: right;
}
.dir-rtl .form-container label {
    margin-left: 0;
    margin-right: .5rem;
}
.form-container label.block {
    width: 100%;
    display: block;
    margin-right: 0;
    margin-left: 0;
    line-height: 1.5;
}
.form-container::after {
    content: "";
    clear: both;
    display: table;
}
input[type=checkbox], input[type=radio] {
    transition-duration: 0.1s;
    box-sizing: border-box;
    -moz-appearance: none;
    -webkit-appearance: none;
    -ms-appearance: none;
    box-shadow: none;
    height: 1rem;
    width: 1rem;
    border: 1px solid #ccc;
    box-shadow: none;
    cursor: pointer;
    margin: 0;
    padding: 0;
}
input[type=checkbox]:focus, input[type=radio]:focus {
    border-color: rgba(0, 155, 255, 1);
    box-shadow: 0 0 10px rgba(0, 155, 255, 1);
}
input[type=radio] {
    border-radius: 50%;
}
input[type=checkbox]:checked, input[type=radio]:checked {
    background-color: #2196F3;
    border-color: #008cb0;
}
input[type=checkbox]:checked::after {
    content: '';
    display: block;
    position: absolute;
    margin-left: .325rem;
    width: .15rem;
    height: .6rem;
    border: solid white;
    border-width: 0 2px 2px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}
input[type=radio]:checked::after {
    content: '';
    display: block;
    margin: .22rem;
    position: absolute;
    border-radius: 50%;
    background: white;
    width: .4rem;
    height: .4rem;
}


.card-wrapper {
    margin: 1rem -.25rem 0;
    padding: 0;
}
.card {
    flex-grow: 1;
    padding: 0 .25rem 1rem;
    padding-bottom: 3em;
    margin-bottom: -1em;
}
.card, .card:hover {
    text-decoration: none;
    color: #808080;
    font-size: 13px;
    font-family: system-ui, "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 500;
}
.card:hover {
    color: #333;
}
.card-title {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    margin-bottom: 5px
}
.card:hover .card-title {
    text-decoration: underline
}

.post-content > h3 {
    margin: 1.5rem 0 1rem
}

main ul li, main ol li {
    /* margin-bottom: .5rem; */
}

.subpixel-antialiased {
    -webkit-font-smoothing: antialiased !important;
}
.font-light {
    font-weight: 300;
}
.font-normal {
    font-weight: 400;
}
.font-semibold {
    font-weight: 500;
}
.font-bold {
    font-weight: 600;
}
.font-heavy {
    font-weight: 700;
}
#overlay {
    background: rgba(0, 0, 0, .5);
    backdrop-filter: blur(4px);
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
}
body:not(.post) #overlay {
    background: rgba(249, 243, 234, 0.95);
    backdrop-filter: blur(6px);
}
#dead-center {
    width: calc(100dvw - 2rem);
    max-width: 560px;
    height: 100dvh;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex; /* Use Flexbox for inner content alignment */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transform: translate(-50%, -50%);
    z-index: 101;
}
.text-center {
    text-align: center;
}

#automaze-cto {
    display: block;
    background: #000;
    color: #fff;
    font-size: .75rem;
    padding: 1rem 1rem 1rem;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: -0.01rem;
    cursor: pointer;
    margin: 1.5rem 0 2rem;
}
#automaze-cto h2 {
    color: #fff;
    font-size: .825rem;
    margin: 0.3rem 0 .5rem;
    opacity: .9;
    letter-spacing: -0.01rem;
}
#automaze-cto p {
    margin: 0.5rem 0;
    font-weight: 400;
    font-size: 14px;
    opacity: .8;
}
#automaze-cto img {
    width: 28px;
    float: left;
    margin-right: 0.5rem;
    pointer-events: none;
}
#automaze-cto:hover p.automaze-cta {
    opacity: .9;
    text-decoration: underline;
}

#podcast-home {
    display: block;
    background: #092c2e url(../img/pod-banner.webp) no-repeat top 50% left 0;
    color: #fff;
    font-size: .75rem;
    padding: 1rem 1rem 0.75rem;
    border-radius: 8px;
    text-decoration: none;
    letter-spacing: -0.01rem;
    cursor: pointer;
    margin: -1rem 0 2rem;
}
#podcast-home h2 {
    color: #fff;
    font-size: .825rem;
    margin: 0rem 0 0rem;
    opacity: .9;
    letter-spacing: -0.01rem;
}
#podcast-home p {
    margin: 0.5rem 0;
    font-weight: 400;
    font-size: 14px;
    opacity: .8;
}
#podcast-home img {
    width: 64px;
    float: left;
    border: 1px solid rgba(255, 255, 255, .1);
    margin-right: 1rem;
    margin-bottom: 1rem;
    margin-top: .15rem;
    pointer-events: none;
    border-radius: 4px;
    box-shadow: 0 0 4px rgba(0, 0, 0, .5);
    transition: all .15s;
}
#podcast-home:hover img {
    border: 1px solid rgba(255, 255, 255, .3);
}
#podcast-home:hover p.podcast-cta {
    opacity: .9;
    text-decoration: underline;
}


iframe[src*="taboola"] {
    display: none !important;
}

#book-embed {
    position:fixed; right:3rem; top:3rem;
}
@media only screen and (max-width: 1439px) {
    #book-embed {
        right: 2rem;
    }
}
@media only screen and (max-width: 1279px) {
    #book-embed {
        display: none;
    }
}

