@font-face {
    /* Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter). Licensed under the SIL Open Font License, Version 1.1. More information available at: http://scripts.sil.org/OFL */
    font-family: 'Inter';
    src: local('Inter'),
        url('fonts/Inter.ttf');
    font-display: swap;
}

@font-face {
    /* Copyright 2014, 2015, 2016 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. Licensed under the SIL Open Font License, Version 1.1. More information available at: http://scripts.sil.org/OFL */
    font-family: 'Source Serif Pro';
    src: local('Source Serif Pro'),
        url('fonts/SourceSerifPro-Regular.ttf');
    font-display: swap;
}

@font-face {
    /* Copyright 2019 - Present, Microsoft Corporation, with Reserved Font Name 'Cascadia Code'. Licensed under the SIL Open Font License, Version 1.1. More information available at: http://scripts.sil.org/OFL */
    font-family: 'Cascadia Code';
    src: local('Cascadia Code'),
        url('fonts/CascadiaCode.ttf');
    font-display: swap;
}

@import 'parts/_archive.scss';
@import 'parts/_cards.scss';
@import 'parts/_code.scss';
@import 'parts/_header.scss';
@import 'parts/_image.scss';
@import 'parts/misc.scss';
@import 'parts/table.scss';
@import 'parts/home-banner.scss';
@import 'parts/footer.scss';
@import 'parts/theme-switch.scss';
@import 'parts/posts_list.scss';
@import 'parts/tags.scss';
@import 'parts/pagination.scss';
@import 'syntax/syntax-ayu-dark.scss';

:root {
    --max-layout-width: 1000px;
    --normal-layout-width: 600px;
    --medium-layout-width: 400px;
    --small-layout-width: 200px;

    --sans-serif-font: 'Inter', Helvetica, Arial, sans-serif;
    --serif-font: 'Source Serif Pro', 'Georgia', serif;
    --code-font: 'Cascadia Code';

    font-family: var(--sans-serif-font);
    line-height: 190%;

    --background-color: white;
    --bg-0: #f0f0f0;
    --bg-1: #e7e7e7;
    --bg-2: #fefefe;
    --hover-color: white;
    --primary-color: #087E96;
    --divider-color: #d7d7d7;
    --text-color: #222226;
    --text-color-high-contrast: #313333;
    --quote-color: #355f62;
    --border-color: #727272;
    --meta-color: #5b5b65;

    --theme-switcher-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z'/%3E%3C/svg%3E%0A");
}

[data-theme='dark'] {
    --background-color: #1f1f1f;
    --bg-0: #2f2f2f;
    --bg-1: #4c4d4d;
    --bg-2: #171717;
    --hover-color: black;
    --primary-color: #91e0ee;
    --divider-color: #4a4a4a;
    --text-color: #D4D4D4;
    --text-color-high-contrast: #eceeef;
    --quote-color: #a9c5c7;
    --border-color: black;
    --meta-color: #B0B0B0;

    --theme-switcher-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 96 960 960' %3E%3Cpath d='M480 776q-83 0-141.5-58.5T280 576q0-83 58.5-141.5T480 376q83 0 141.5 58.5T680 576q0 83-58.5 141.5T480 776ZM80 616q-17 0-28.5-11.5T40 576q0-17 11.5-28.5T80 536h80q17 0 28.5 11.5T200 576q0 17-11.5 28.5T160 616H80Zm720 0q-17 0-28.5-11.5T760 576q0-17 11.5-28.5T800 536h80q17 0 28.5 11.5T920 576q0 17-11.5 28.5T880 616h-80ZM480 296q-17 0-28.5-11.5T440 256v-80q0-17 11.5-28.5T480 136q17 0 28.5 11.5T520 176v80q0 17-11.5 28.5T480 296Zm0 720q-17 0-28.5-11.5T440 976v-80q0-17 11.5-28.5T480 856q17 0 28.5 11.5T520 896v80q0 17-11.5 28.5T480 1016ZM226 378l-43-42q-12-11-11.5-28t11.5-29q12-12 29-12t28 12l42 43q11 12 11 28t-11 28q-11 12-27.5 11.5T226 378Zm494 495-42-43q-11-12-11-28.5t11-27.5q11-12 27.5-11.5T734 774l43 42q12 11 11.5 28T777 873q-12 12-29 12t-28-12Zm-42-495q-12-11-11.5-27.5T678 322l42-43q11-12 28-11.5t29 11.5q12 12 12 29t-12 28l-43 42q-12 11-28 11t-28-11ZM183 873q-12-12-12-29t12-28l43-42q12-11 28.5-11t27.5 11q12 11 11.5 27.5T282 830l-42 43q-11 12-28 11.5T183 873Z'/%3E%3C/svg%3E");

    .invertible-image {
        filter: invert(.88);
    }

    .dimmable-image {
        filter: brightness(.8) contrast(1.2);
    }
}

html {
    background-color: var(--background-color);
    color: var(--text-color);
    line-height: 1.6em;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0 12px;
    padding: 0;
}

.content {
    width: 100%;
    max-width: var(--max-layout-width);
    margin: 0 auto;
    margin-top: 6vmin;
    margin-bottom: 4rem;
    word-wrap: break-word;
}

article {
    max-width: calc(var(--max-layout-width) - 17rem);
    margin: 0 auto;
}

.section-title {
    display: block;
    font-size: 2.2em;
    margin-bottom: 0em;
    margin-left: 0;
    margin-right: 0;
    font-weight: 550;
    color: var(--text-color-high-contrast);
}

.last-updated {
    margin-top: -5vmin;
}

h1 {
    display: block;
    font-size: 1.5em;
    margin-top: 0.67em;
    margin-bottom: 0em;
    margin-left: 0;
    margin-right: 0;
    font-weight: 550;
}

h2 {
    display: block;
    font-size: 1.4em;
    margin-top: 0.5em;
    margin-bottom: 0em;
    margin-left: 0;
    margin-right: 0;
    font-weight: 550;
}

h3 {
    display: block;
    font-size: 1.2em;
    margin-top: 0.3em;
    margin-bottom: 0em;
    margin-left: 0;
    margin-right: 0;
    font-weight: 550;
}

h4 {
    display: block;
    font-size: 1em;
    margin-top: 0.83em;
    margin-bottom: 0em;
    margin-left: 0;
    margin-right: 0;
    font-weight: 550;
}

h5 {
    display: block;
    font-size: 1em;
    margin-top: 0.83em;
    margin-bottom: 0em;
    margin-left: 0;
    margin-right: 0;
    font-weight: normal;
}

p {
    font-family: var(--serif-font);
    margin-top: 0.4rem;
    margin-bottom: max(2.3vmin, 24px);
    line-height: 2rem;
    font-size: 1em;
}

@media only screen and (max-width: 1000px) {
    .content {
        max-width: var(--normal-layout-width);
    }

    body {
        margin: 0 32px;
    }
}

@media only screen and (max-width: 600px) {
    .content {
        max-width: var(--medium-layout-width);
    }

    body {
        margin: 0 16px;
    }
}

@media only screen and (max-width: 300px) {
    .content {
        max-width: var(--small-layout-width);
    }
}

@media all and (min-width: 600px) {
    html {
        font-size: 16.5px;
    }
}

@media all and (min-width: 960px) {
    html {
        font-size: 20px;
    }
}
