/** Reset some basic elements */
body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; }

html {
    max-width: 1440px;
    min-width: 360px;
    margin-left: auto;
    margin-right: auto;
    @media (width < 600px) {
        zoom: 92%;
        padding-left: 0;
        padding-right: 0;
    }
}

body {
    font-size: 16px; 
    line-height: 1.6;
    --doc_fonts: MicrosoftYaHei, sans-serif;
    --mono_fonts: "Ubuntu Mono", "Consolas", "Source Code Pro", monospace;
    font-family: var(--doc_fonts);
    pre, code, span[rank], *[mono], kbd {
        font-family: var(--mono_fonts);
    }
    h1, h5 {
        font-family: var(--serif_fonts);
    }

    &, &.vscode-light {
        --htmlFG: #000000;
        --color_current: var(--htmlFG);
        color: var(--color_current);
        --htmlBG: #ffffff;
        background-color: var(--htmlBG);

        --color_blue: #519def;
        --color_border: #e1e0e2;
        --code_gold: #c6780c;
        --code_infogold: #d19808;
        --code_cyan: #02b9a9;
        --link: #009f92;
        --link_focus: #00c7b6;
        --color_com: #3687de;
    }
    &.vscode-dark, .vscode-dark & {
        --htmlFG: #ffffff;
        --color_current: var(--htmlFG);
        color: var(--color_current);
        --htmlBG: #16161d;
        background-color: var(--htmlBG);
        --color_blue: #366dc7;
        --color_border: #5e5c60;
        --code_gold: #fad105;
        --code_infogold: #fabd05;
        --code_cyan: #25eeba;
        --link: #15ca9a;
        --link_focus: #25eeba;
        --color_com: #71c0ee;
    }
}

h1 {
    border: none;
    font-size: 2em;
    text-align: center;
    margin-bottom: 0.5em;
    &:has(~p[subt]) {
        padding-bottom: 0;
    }
}
h2 {
    border-bottom: 1px grey solid;
    font-size: 1.5em;
    margin-left: -0.8rem;
    margin-top: 0.7em;
    margin-bottom: 0.5em;
    /* h1 ~ &, &:not(:first-of-type) {
        page-break-before: always;
        } */
    }
h3 {
    border: none;
    font-size: 1.3em;
    padding-top: 1.5em;
    margin-top: 0;
    margin-left: -0.75rem;
    margin-bottom: 0.4em;
    h1 + &, h2 + &, h3 + &, &:first-child {padding-top: 0;}
}
h4 {
    border: none;
    font-size: 1.2em;
    margin-top: 0.5em;
    margin-top: 0;
    opacity: 90%;
    margin-bottom: 0.1em;
    h1 + &, h2 + &, h3 + &, h4 + &, &:first-child {padding-top: 0;}
}
h5 {
    border: none;
    font-size: 1.1em;
    padding-top: 0;
    margin-top: 0;
    margin-bottom: 0.8em;
    &:has(+h5) {
        margin-bottom: 0.2em;
    }
    &::after {
        content: "";
        display: table;
        clear: both;
    }
}

* {
    p:has(+ul) {margin-bottom: 0; padding-bottom: 0;}
}

p {
    margin-bottom: 0.8em;
}

p[subt] {
    text-align: center;
    font-size: 1.1em;
    font-weight: bold;
    padding-bottom: 1.5em;
}

img {
    margin: 0;
    padding: 0;
    vertical-align: middle;
}

code:not(pre > code) {
    background-color: transparent;
    --color_current: var(--code_gold);
    color: var(--color_current);
    padding: 0;
}

ul {
    padding-left: 1.5em;
    margin-top: 0;
    &, li {
        clear: both;
    }
    li > & {margin-bottom: 0;}
    list-style: disc;
    li > & > li::marker {color: color-mix(in srgb, var(--color_current) 50%, transparent);}
    li > ul > li > & {
        list-style: circle;
        li::marker {color: var(--color_current);}
    }
}

div.highlight {
    background-color: #cccccc30;
    border-radius: 3px;
    code {
        white-space: pre-wrap;
        word-break: break-word;
        overflow-wrap: break-word;
        overflow: visible;
    }
    padding: 0.2em 0.4em;
    /* margin-bottom: 0.3em; */
    page-break-inside: auto;
    break-inside: auto;
    white-space: pre-wrap;
    word-wrap: break-word;
    margin-bottom: 0.6em;
}

blockquote {
    --color_current: grey;
    color: var(--color_current);
    border: none;
    border-left: lightgrey 3px solid;
    background-color: transparent;
    margin: 0;
    padding-top: 0;
    .vscode-dark & {
        --color_current: lightgrey;
        color: var(--color_current);
        border-left: grey 3px solid;
    }
    &[info] {
        --color_current: black;
        color: var(--color_current);
        .vscode-dark & {
            --color_current: lightgrey;
            color: var(--color_current);
        }
        border-left: var(--color_blue) 3px solid;
        background-color: color-mix(in srgb, var(--color_blue) 15%, transparent);
        .vscode-dark & {
            background-color: color-mix(in srgb, var(--color_blue) 30%, transparent);
        }
        padding: 0.5em 0.5em 0.4em 0.5em;
        margin-bottom: 0.7em;
        code:not(pre >) {
            --color_current: var(--code_infogold);
            color: var(--color_current);
        }
    }
}

blockquote[box] {
    display: block;
    --color_current: var(--htmlFG);
    color: var(--color_current);
    border: 2px var(--color_border) solid;
    padding-top: 0.5em;
    padding-left: 0.6em;
    padding-right: 0.6em;
    padding-bottom: 0em;
    margin-bottom: 1em;
    margin-left: 4px;
    margin-right: 4px;
    &[bg] {
        background-color: #9c93a430;
    }
}

*[com] {
    --color_current: var(--color_com);
    color: var(--color_current);
}

/** Links */
a { color: #2a7ae2; text-decoration: none; }
a:visited { color: #1756a9; }
a:hover { color: #111; text-decoration: underline; }
.social-media-list a:hover { text-decoration: none; }
.social-media-list a:hover .username { text-decoration: underline; }

/** Blockquotes */
blockquote { color: #828282; border-left: 4px solid #e8e8e8; padding-left: 15px; }
blockquote > :last-child { margin-bottom: 0; }

/** Wrapper */
.wrapper { max-width: -webkit-calc(800px - (30px * 2)); max-width: calc(800px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; }
@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: 15px; padding-left: 15px; } }

/** Clearfix */
.wrapper:after, .footer-col-wrapper:after { content: ""; display: table; clear: both; }

/** Icons */
.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #828282; padding-right: 5px; vertical-align: text-top; }

.social-media-list li + li { padding-top: 5px; }

/** Tables */
table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e8e8e8; }
table tr:nth-child(even) { background-color: #f7f7f7; }
table th, table td { padding: 10px 15px; }
table th { background-color: #f0f0f0; border: 1px solid #dedede; border-bottom-color: #c9c9c9; }
table td { border: 1px solid #e8e8e8; }

/** Site header */
.site-header { border-top: 5px solid #424242; border-bottom: 1px solid #e8e8e8; min-height: 55.95px; position: relative; }

.site-title { font-size: 20px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; }
.site-title, .site-title:visited { color: #424242; }

.site-nav { float: right; line-height: 54px; }
.site-nav .nav-trigger { display: none; }
.site-nav .menu-icon { display: none; }
.site-nav .page-link { color: #111; line-height: 1.5; }
.site-nav .page-link:not(:last-child) { margin-right: 20px; }
@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; }
  .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; }
  .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; }
  .site-nav .menu-icon > svg { fill: #424242; }
  .site-nav input ~ .trigger { clear: both; display: none; }
  .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; }
  .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; }
  .site-nav .page-link:not(:last-child) { margin-right: 0; } }

/** Site footer */
.site-footer { border-top: 1px solid #e8e8e8; padding: 30px 0; }

.footer-heading { font-size: 18px; margin-bottom: 15px; }

.contact-list, .social-media-list { list-style: none; margin-left: 0; }

.footer-col-wrapper { font-size: 15px; color: #828282; margin-left: -15px; }

.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; }

.footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); }

.footer-col-2 { width: -webkit-calc(20% - (30px / 2)); width: calc(20% - (30px / 2)); }

.footer-col-3 { width: -webkit-calc(45% - (30px / 2)); width: calc(45% - (30px / 2)); }

@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (30px / 2)); width: calc(50% - (30px / 2)); }
  .footer-col-3 { width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } }
@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } }
/** Page content */
.page-content { padding: 30px 0; flex: 1; }

.page-heading { font-size: 32px; }

.post-list-heading { font-size: 28px; }

.post-list { margin-left: 0; list-style: none; }
.post-list > li { margin-bottom: 30px; }

.post-meta { font-size: 14px; color: #828282; }

.post-link { display: block; font-size: 24px; }

/** Posts */
.post-header { margin-bottom: 30px; }

.post-title { font-size: 42px; letter-spacing: -1px; line-height: 1; }
/* @media screen and (max-width: 800px) { .post-title { font-size: 36px; } } */

.post-content { margin-bottom: 30px; }
/* .post-content h2 { font-size: 32px; }
@media screen and (max-width: 800px) { .post-content h2 { font-size: 28px; } }
.post-content h3 { font-size: 26px; }
@media screen and (max-width: 800px) { .post-content h3 { font-size: 22px; } }
.post-content h4 { font-size: 20px; }
@media screen and (max-width: 800px) { .post-content h4 { font-size: 18px; } } */

/** Syntax highlighting styles */
/* .highlight { background: #fff; } */
.highlight .c { color: #998; font-style: italic; }
/* .highlight .err { color: #a61717; background-color: #e3d2d2; } */
.highlight .k { font-weight: bold; }
.highlight .o { font-weight: bold; }
.highlight .cm { color: #998; font-style: italic; }
.highlight .cp { color: #999; font-weight: bold; }
.highlight .c1 { color: #998; font-style: italic; }
.highlight .cs { color: #999; font-weight: bold; font-style: italic; }
.highlight .gd { color: #000; background-color: #fdd; }
.highlight .gd .x { color: #000; background-color: #faa; }
.highlight .ge { font-style: italic; }
.highlight .gr { color: #a00; }
.highlight .gh { color: #999; }
.highlight .gi { color: #000; background-color: #dfd; }
.highlight .gi .x { color: #000; background-color: #afa; }
.highlight .go { color: #888; }
.highlight .gp { color: #555; }
.highlight .gs { font-weight: bold; }
.highlight .gu { color: #aaa; }
.highlight .gt { color: #a00; }
.highlight .kc { font-weight: bold; }
.highlight .kd { font-weight: bold; }
.highlight .kp { font-weight: bold; }
.highlight .kr { font-weight: bold; }
.highlight .kt { color: #458; font-weight: bold; }
.highlight .m { color: #099; }
.highlight .s { color: #d14; }
.highlight .na { color: #008080; }
.highlight .nb { color: #0086B3; }
.highlight .nc { color: #458; font-weight: bold; }
.highlight .no { color: #008080; }
.highlight .ni { color: #800080; }
.highlight .ne { color: #900; font-weight: bold; }
.highlight .nf { color: #900; font-weight: bold; }
.highlight .nn { color: #555; }
.highlight .nt { color: #000080; }
.highlight .nv { color: #008080; }
.highlight .ow { font-weight: bold; }
.highlight .w { color: #bbb; }
.highlight .mf { color: #099; }
.highlight .mh { color: #099; }
.highlight .mi { color: #099; }
.highlight .mo { color: #099; }
.highlight .sb { color: #d14; }
.highlight .sc { color: #d14; }
.highlight .sd { color: #d14; }
.highlight .s2 { color: #d14; }
.highlight .se { color: #d14; }
.highlight .sh { color: #d14; }
.highlight .si { color: #d14; }
.highlight .sx { color: #d14; }
.highlight .sr { color: #009926; }
.highlight .s1 { color: #d14; }
.highlight .ss { color: #990073; }
.highlight .bp { color: #999; }
.highlight .vc { color: #008080; }
.highlight .vg { color: #008080; }
.highlight .vi { color: #008080; }
.highlight .il { color: #099; }
