/* Imports */

@import url(highlight-dracula-xcode.css) screen;
@import url(highlight-dracula-xcode.css) screen and (prefers-color-scheme: dark);

/* Variables & Dark Mode */

:root {
    color-scheme: light dark;
    --accent-color: #C7F860;
    --seconday-accent-color: #9160F8;
    --text-color: #323232;
    --secondary-text-color: #808080;
    --tertiary-text-color: #BDBDBD;
    --strong-text-color: black;
    --link-color: black;
    --link-visited-color: black;
    --border-color: #3c3c434A;
}

@media (prefers-color-scheme: dark) {
    html {
        background-color: #191b1f;
    }
    body {
        --accent-color: #6F9005;
        --text-color: #eee;
        --secondary-text-color: #FFFFFF8C;
        --tertiary-text-color: #FFFFFF3F;
        --strong-text-color: white;
        --link-color: white;
        --link-visited-color: white;
        --border-color: #54545899;
    }
}


/* Main */

html {
    font-size: 16px;
}

@media screen and (max-width: 767px) {
    html {
        font-size: 16px;
    }
}

body {
    max-width: 700px;
    margin: auto;
    padding: 20px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
    line-height: 1.55;
    color: var(--text-color);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Headings */

h1,
h2,
h3,
h4,
h5,
h6 {
    line-height: 1.2;
    font-weight: 600;
}

h1 {
    font-size: 1.8rem;
}

h2 {
    font-size: 1.5rem;
}

h3 {
    font-size: 1.2rem;
}

h4,
h5,
h6 {
    font-size: 1rem;
}


/* Move headings further away from previous content. */
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--strong-text-color);
    margin-top: 2.5rem;
    margin-bottom: 0.8rem;
}


/* And closer to following content. */
h1+p,
h2+p,
h3+p,
h4+p,
h5+p,
h6+p,
h1+ul,
h2+ul,
h3+ul,
h4+ul,
h5+ul,
h6+ul,
h1+ol,
h2+ol,
h3+ol,
h4+ol,
h5+ol,
h6+ol {
    margin-top: 0.5rem;
}


/* Except here. */
h1+h2,
h2+h3,
h3+h4,
h4+h5,
h5+h6 {
    margin-top: 1rem;
}

/* Header */

header {
    display: block;
    margin-bottom: 2rem;
}

.site-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 0.6rem;
}

.site-title {
    margin: 0;
    font-size: 1.4rem;
}

.site-nav-list {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-size: 0.88rem;
    color: var(--secondary-text-color);
}

.blob {
    padding: 2px 6px;
    display: inline-block;
    background: var(--accent-color);  
    transform: skewX(-8deg); 
}

.blob > * {
    transform: skewX(8deg); 
    border: #191b1f;
}

/* About */

.about-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    row-gap: 1rem;
    column-gap: 1rem;
}

.about-hero {
    width: 110px;
    height: 110px;
    border-radius: 50%;
}

.about-info-headline {
    margin: 0;
}

.about-info-subhead {
    margin-top: 0.4rem;
    margin-bottom: 0;
    font-weight: 400;
}

.about-info-body {
    margin-top: 0.4rem;
}

.landing-primary .about-hero {
    width: 100px;
    height: 100px;
}

.landing-primary .about-info {
    margin-bottom: 1.55rem;
}

.landing-primary .landing-name {
    padding: 2px 8px;
    transform: skewX(-6deg);
}

.landing-primary .landing-name > * {
    transform: skewX(6deg);
}

.landing-primary .about-info-headline {
    font-size: 1.9rem;
}

.landing-primary .about-info-subhead {
    margin-top: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.95rem;
    color: var(--secondary-text-color);
}

.landing-copy {
    max-width: 62ch;
}

.landing-lead {
    margin-top: 0;
    margin-bottom: 1rem;
    color: var(--strong-text-color);
    font-size: 1.1rem;
}

.landing-cta-row {
    margin-top: 1.25rem;
}

.landing-cta,
.landing-cta:hover {
    color: var(--seconday-accent-color);
    border-bottom: 1px solid var(--seconday-accent-color);
}

.landing-divider {
    width: 100%;
    height: 1px;
    background-color: var(--tertiary-text-color);
    margin-top: 4.1rem;
    margin-bottom: 1.5rem;
}

.landing-posts {
    margin-top: 0;
    padding-top: 0;
}

.landing-posts-title {
    margin-top: 0;
    margin-bottom: 0.7rem;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tertiary-text-color);
}

.landing-posts li {
    margin-bottom: 0.45rem;
}

.landing-post-year {
    color: var(--tertiary-text-color);
    font-size: 0.82em;
    margin-left: 0.4rem;
}

.blog-post-description {
    margin-top: 0.14rem;
    max-width: 62ch;
    line-height: 1.45;
}

.blog-posts li {
    margin-bottom: 1.15rem;
}

.blog-posts li:last-child {
    margin-bottom: 0;
}

.blog-posts .landing-post-year {
    margin-left: 0.32rem;
}

.arrow-bullet {
    position: relative;
    margin-bottom: 0.5rem;
    margin-top: 0;
    padding-left: 1.75rem;
}

.arrow-bullet:before {
    content: "↳";
    position: absolute;
    left: 0;
    font-family: Helvetica;
}

/* Articles */

article h1 {
    margin-top: 0;
}

.fin:not(:last-of-type) {
    width: 80px;
    margin: auto;
    height: 1px;
    background-color: var(--border-color);
}


/* Links */

a {
    color: var(--link-color);
    text-decoration: none;
    border-bottom: 1px solid var(--link-color);
}

a:hover {
    color: var(--seconday-accent-color);
    border-bottom-color: var(--seconday-accent-color);
}

a.link-plain,
.link-plain a {
    color: inherit;
    text-decoration: inherit;
    border-bottom: none;
}

a:hover.link-plain,
.link-plain a:hover {
    color: var(--seconday-accent-color);
    border-bottom: 1px solid var(--seconday-accent-color);
}

.site-title a,
.site-title a:hover {
    color: inherit;
    border-bottom: none;
}

.button {
    border: 1px solid;
    border-radius: 14px;
    display: inline-block;
    padding: 0.4rem 1.5rem;
}


/* Lists */

/* Keep style on nested lists */
ul li {
    list-style-type: disc;
}

.list-unstyled {
    padding: 0;
}

.list-unstyled li {
    list-style-type: none;
}

.list-inline li {
    display: inline-block;
}

.list-inline li:not(:last-child) {
    margin-right: 0.6rem;
}


/* Images, videos */

figure {
    margin: 1rem 0;
}

article img,
video {
    display: block;
    max-width: 100%;
    max-height: 700px;
    margin: auto;
}

.player-controls {
    /* Display emoji correctly */
    font-family: sans-serif;
}

.player-controls>* {
    cursor: pointer;
}


/* Other */

blockquote {
    padding-left: 20px;
    margin-left: 10px;
    color: var(--text-color);
    border-left: 3px solid var(--accent-color);
}

hr {
    background: var(--border-color);
    height: 1px;
    border: 0;
}


/* Spacing */

.pad1 {
    padding: 10px;
}

.pad2 {
    padding: 20px;
}

.pad1x {
    padding-left: 10px;
    padding-right: 10px;
}

.pad2x {
    padding-left: 20px;
    padding-right: 20px;
}

.pad1y {
    padding-top: 10px;
    padding-bottom: 10px;
}

.pad2y {
    padding-top: 20px;
    padding-bottom: 20px;
}

.pad4y {
    padding-top: 40px;
    padding-bottom: 40px;
}

.pad6y {
    padding-top: 80px;
    padding-bottom: 80px;
}

.pad1r {
    padding-right: 10px;
}

.mb1 {
    margin-bottom: 10px;
}

.mb2 {
    margin-bottom: 20px;
}

.mb4 {
    margin-bottom: 40px;
}

.mb6 {
    margin-bottom: 60px;
}

.mb10 {
    margin-bottom: 100px;
}

.mt1 {
    margin-top: 10px;
}

.mr1 {
    margin-right: 10px;
}


/* Util */

.secondary-text {
    color: var(--secondary-text-color);
}

.tertiary-text {
    color: var(--tertiary-text-color);
}

.hidden {
    display: none;
}

.inline {
    display: inline-block;
}

.fl {
    float: left;
}

.fr {
    float: right;
}

.quiet {
    color: var(--secondary-text-color);
}

strong,
.strong {
    font-weight: 600;
}

.center {
    text-align: center;
}

.lowercase {
    text-transform: lowercase;
}

.uppercase {
    text-transform: uppercase;
}

.tightened {
    letter-spacing: -1px;
}

.widened {
    letter-spacing: 1px;
}

.tiny {
    font-size: .8em;
}

small,
.small,
.footnotes {
    font-size: 0.9em;
}

.large {
    font-size: 1.2em;
}

.footnotes {
    border-top: 1px solid var(--secondary-text-color);
}

.bordered {
    border: 1px solid var(--border-color);
}


/* Code */


/*
  Note: Jekyll Liquid `{% highlight ruby %} {% endhighlight %}` code blocks produce
  different markup than standard Markdown code blocks (```ruby ``` or plain indentation)
  See: https://github.com/jekyll/jekyll/issues/6446
*/

.highlight {
    border-radius: 6px;
}

pre {
    padding: 2px 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Inline code */
code {
    font-family: SFMono-Regular,Menlo,Monaco,ui-monospace,Consolas,Liberation Mono,Courier New,monospace;
    font-weight: 800;
    font-size: .85em;
    color: black;
    /* Break inline code */
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* Code blocks */
pre code {
    font-size: 0.8em;
    color: white;
    padding: 0;
    /* Don't break code blocks */
    white-space: pre;
    word-wrap: normal;
}


/* Print */

@media print {
    img {
        max-width: 500px;
        max-height: 400px;
    }
    code {
        overflow: visible;
        white-space: pre-wrap;
        word-break: break-all;
        word-wrap: break-word;
    }
}
