/*********
Root
*********/

:root {
    --root-color: black;
    --root-background-color: white;
    --container-a-color: dodgerblue;
    --container-header-color: navy;
    --container-header-background-color: lightgray;
    --container-active-background-color: #FFF0FF;
    --container-i-background-color: #FFF080;
    --container-selection-background-color: rgba(208, 208, 255, 0.5);
    --container-tag-color: #A080FF;
    --container-tag-background-color: #F0F0FF;
    --container-reference-color: #008000;
    --container-reference-background-color: #C0FFC0;
    --container-card-border-color: lightgray;
    --md-primary-fg-color: #4051b5;
    --md-primary-fg-color--light: #5d6cc0;
    --md-primary-fg-color--dark: #303fa1;
    --md-primary-bg-color: #fff;
    --md-primary-bg-color--light: #ffffffb3;
    --md-accent-fg-color: #526cfe;
    --md-accent-fg-color--transparent: #526cfe1a;
    --md-accent-bg-color: #fff;
    --md-accent-bg-color--light: #ffffffb3;
    --md-default-fg-color: #000000de;
    --md-default-fg-color--light: #0000008a;
    --md-default-fg-color--lighter: #00000052;
    --md-default-fg-color--lightest: #00000012;
    --md-default-bg-color: #fff;
    --md-default-bg-color--light: #ffffffb3;
    --md-default-bg-color--lighter: #ffffff4d;
    --md-default-bg-color--lightest: #ffffff1f;
    --md-code-fg-color: #36464e;
    --md-code-bg-color: #f5f5f5;
    --md-code-hl-color: #4287ff;
    --md-code-hl-color--light: #4287ff1a;
    --md-code-hl-number-color: #d52a2a;
    --md-code-hl-special-color: #db1457;
    --md-code-hl-function-color: #a846b9;
    --md-code-hl-constant-color: #6e59d9;
    --md-code-hl-keyword-color: #3f6ec6;
    --md-code-hl-string-color: #1c7d4d;
    --md-code-hl-name-color: var(--md-code-fg-color);
    --md-code-hl-operator-color: var(--md-default-fg-color--light);
    --md-code-hl-punctuation-color: var(--md-default-fg-color--light);
    --md-code-hl-comment-color: var(--md-default-fg-color--light);
    --md-code-hl-generic-color: var(--md-default-fg-color--light);
    --md-code-hl-variable-color: var(--md-default-fg-color--light);
    --md-typeset-color: var(--md-default-fg-color);
    --md-typeset-a-color: var(--md-primary-fg-color);
    --md-typeset-del-color: #f5503d26;
    --md-typeset-ins-color: #0bd57026;
    --md-typeset-kbd-color: #fafafa;
    --md-typeset-kbd-accent-color: #fff;
    --md-typeset-kbd-border-color: #b8b8b8;
    --md-typeset-mark-color: #ffff0080;
    --md-typeset-table-color: #0000001f;
    --md-typeset-table-color--light: rgba(0, 0, 0, .035);
    --md-admonition-fg-color: var(--md-default-fg-color);
    --md-admonition-bg-color: var(--md-default-bg-color);
    --md-warning-fg-color: #000000de;
    --md-warning-bg-color: #ff9;
    --md-footer-fg-color: #fff;
    --md-footer-fg-color--light: #ffffffb3;
    --md-footer-fg-color--lighter: #ffffff73;
    --md-footer-bg-color: #000000de;
    --md-footer-bg-color--dark: #00000052;
    --md-shadow-z1: 0 0.2rem 0.5rem #0000000d, 0 0 0.05rem #0000001a;
    --md-shadow-z2: 0 0.2rem 0.5rem #0000001a, 0 0 0.05rem #00000040;
    --md-shadow-z3: 0 0.2rem 0.5rem #0003, 0 0 0.05rem #00000059;
}

/*********
HTML
*********/

html,
html .vscode-dark,
html .vscode-light {
    font-family: -apple-system, BlinkMacSystemFont,
        "Segoe UI", "Droid Sans", "Helvetica Neue",
        "Roboto", "Oxygen", "Ubuntu", "Cantarell",
        "Fira Sans", sans-serif;
    color: var(--root-color);
    background-color: var(--root-background-color);
}

/*********
Body
*********/

body {
    margin: 0;
    background-color: white;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    --md-text-font-family: var(--md-text-font, _), Arial, Helvetica, sans-serif, -apple-system, BlinkMacSystemFont;
    --md-code-font-family: var(--md-code-font, _), Consolas, Menlo, monospace, SFMono-Regular;
}

/*********
Article
*********/

article,
.vscode-dark,
.vscode-light {
    max-width: 7.4in;
    width: 100%;
    padding: 0em;
    margin: 1em;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
}

.cm-content,
.cm-line,
.cm-sizer,
.markdown-preview-sizer {
    max-width: 45em !important;
}

.cm-editor,
.markdown-preview-view {
    background-color: var(--root-background-color);
}

/*********
Header
*********/

article h1,
.vscode-light h1,
.vscode-dark h1 {
    padding: 0.2em;
    color: var(--md-default-fg-color--light);
    font-size: 2em;
    line-height: 1.3;
    margin: 1em auto;
}

article h2,
article h3,
article h4,
article h5,
article h6,
.vscode-dark h1,
.vscode-dark h2,
.vscode-dark h3,
.vscode-dark h4,
.vscode-dark h5,
.vscode-dark h6,
.vscode-light h1,
.vscode-light h2,
.vscode-light h3,
.vscode-light h4,
.vscode-light h5,
.vscode-light h6 {
    padding: 0.2em;
    margin: 0.5em 0em;
}


h1, h2 {
    letter-spacing: -.01em;
}

h2 {
    font-size: 1.6em;
    line-height: 1.4;
    margin: 1.6em 0 .64em;
}

h2+h3 {
    margin-top: .8em;
}

h3 {
    font-size: 1.3em;
    letter-spacing: -.01em;
    line-height: 1.5;
    margin: 1.6em 0 .8em;
}

h4 {
    font-size: 1.1em;
    letter-spacing: -.01em;
    margin: 1em 0;
}

h5 {
    font-size: 1em;
    letter-spacing: -.01em;
    margin: 1em 0;
}

h6 {
    font-size: 0.9em;
    letter-spacing: -.01em;
    margin: 1em 0;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

i, em {
    color: orangered;
    margin-right: 0.1em;
}

input {
    border: 0;
    outline: none;
}

/*********
Hyperlink
*********/

article a,
.view-content .cm-underline,
.view-content a,
.view-content a.internal-link,
.vscode-dark a,
.vscode-light a {
    color: var(--container-a-color) !important;
    text-decoration: none !important;
}

article a:hover,
.view-content .cm-underline:hover,
.view-content a:hover,
.view-content a.internal-link:hover {
    text-decoration: underline !important;
}

a {
    color: var(--md-typeset-a-color);
    word-break: break-word;
    text-decoration: none;
}

a, a:before {
    transition: color 125ms;
}

a:focus, a:hover {
    color: var(--md-accent-fg-color);
}

a:focus code, a:hover code {
    background-color: var(--md-accent-fg-color--transparent);
}

a code {
    color: currentcolor;
    transition: background-color 125ms;
}

a.focus-visible {
    outline-color: var(--md-accent-fg-color);
    outline-offset: .2rem;
}

/*********
List
*********/

ol, ul {
    display: flow-root;
    margin-left: 0.5em;
    margin-top: 0.5em;
    padding: 0;
}

ul {
    list-style-type: disc;
}

li {
    margin-left: 1em;
    margin-bottom: .5em;
}

li blockquote, li p {
    margin: .5em 0;
}

li:last-child {
    margin-bottom: 0;
}

li ol, li ul {
    margin-bottom: 0;
}

/*********
Figure
*********/

figure {
    display: flow-root;
    margin: 1em auto;
    max-width: 100%;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content;
}

p > img, p > a > img {
    border-style: none;
    display: block;
    height: auto;
    margin: 0.2em auto;
    max-width: 100%;
}

figcaption {
    font-weight: bold;
    display: block;
    margin: 1em auto;
    max-width: 100%;
    text-align: center;
}

p:has(> img):has(+ figcaption) {
    margin-bottom: 0.5em;
}

p:has(> img) + figcaption {
    margin-top: 0.5em;
}

figcaption:has(+ table) {
    margin-bottom: 0.5em;
}

svg {
    fill: currentcolor;
    display: block;
}

/*********
Table
*********/

table {
    background-color: var(--md-default-bg-color);
    border: .05rem solid var(--md-typeset-table-color);
    border-radius: .1rem;
    font-size: .8rem;
    width: 100%;
    overflow: auto;
    touch-action: auto;
    border-collapse: collapse;
    border-spacing: 0;
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

table a {
    word-break: normal;
}

table th {
    font-weight: 700;
    min-width: 5rem;
    text-align: center;
    border-bottom: .05rem solid var(--md-typeset-table-color) !important;
}

table td {
    border-top: .05rem solid var(--md-typeset-table-color) !important;
}

table th, table td {
    padding: .4em 1em;
}

table tbody tr {
    transition: background-color 125ms;
}

table tbody tr:hover {
    background-color: var(--md-typeset-table-color--light);
    box-shadow: 0 .05rem 0 var(--md-default-bg-color) inset;
}

/*********
Control
*********/

a, button, input, label {
    -webkit-tap-highlight-color: transparent;
}

button {
    background: #0000;
    border: 0;
    font-family: inherit;
    font-size: inherit;
    margin: 0;
    padding: 0;
}

aside, body, input {
    font-feature-settings: "kern", "liga";
    color: var(--md-typeset-color);
    font-family: var(--md-text-font-family);
}

/*********
Code
*********/

abbr {
    border-bottom: .05rem dotted var(--md-default-fg-color--light);
    cursor: help;
    text-decoration: none;
}

blockquote {
    color: var(--md-default-fg-color--light);
    margin-left: 0;
    margin-right: 0;
    padding-left: .6rem;
    border-left: .2rem solid var(--md-default-fg-color--lighter);
}

code, kbd, pre {
    color: var(--md-code-fg-color);
    direction: ltr;
    font-variant-ligatures: none;
    border: none;
}

code {
    background-color: cornsilk;
    border-radius: .2rem;
    border: 0.1px solid bisque;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    font-size: .85em;
    word-break: break-word;
}

code:not(.focus-visible) {
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

kbd {
    background-color: var(--md-typeset-kbd-color);
    border-radius: .1rem;
    box-shadow: 0 .1rem 0 .05rem var(--md-typeset-kbd-border-color), 0 .1rem 0 var(--md-typeset-kbd-border-color), 0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;
    display: inline-block;
    font-size: .75em;
    padding: 0 .6em;
    vertical-align: text-top;
    word-break: break-word;
}

pre {
    display: flow-root;
    line-height: 1.4;
    position: relative;
    padding: 0 !important;
    background-color: var(--md-code-bg-color);
}

pre>code {
    -webkit-box-decoration-break: slice;
    box-decoration-break: slice;
    box-shadow: none;
    display: block;
    margin: 0;
    outline-color: var(--md-accent-fg-color);
    overflow: auto;
    padding: .5em;
    touch-action: auto;
    word-break: normal;
}

pre>code::-webkit-scrollbar {
    height: .2rem;
    width: .2rem;
}

pre>code::-webkit-scrollbar-thumb {
    background-color: var(--md-default-fg-color--lighter);
}

pre>code::-webkit-scrollbar-thumb:hover {
    background-color: var(--md-accent-fg-color);
}

article pre,
.vscode-dark pre,
.vscode-light pre {
    font-size: 80%;
    border: 0.5px solid gray;
    margin-top: 0.2em;
    margin-bottom: 0.2em;
    padding: 0.2em;
    border-radius: 0.3em;
}

article code,
.vscode-dark code,
.vscode-light code {
    color: var(--root-color);
    background-color: cornsilk;
    border-radius: 0.3em;
}

article pre:not(.mermaid) {
    font-size: 80%;
    background-color: var(--container-header-background-color);
    margin-top: 1em;
    margin-bottom: 1em;
    padding: 0.5em;
}

.vscode-dark pre:not(.mermaid),
.vscode-light pre:not(.mermaid) {
    font-size: 80%;
    margin-top: 1em;
    margin-bottom: 1em;
    padding: 0.5em;
}

/*********
Others
*********/

article hr,
footer hr,
.markdown-preview-view hr,
.vscode-dark hr,
.vscode-light hr {
    border-bottom: .05rem solid lightgray;
    margin: 1em auto;
    width: 70%;
}

.markdown-source-view .cm-contentContainer .cm-active.cm-line {
    background-color: var(--container-active-background-color);
}

article img,
.markdown-preview-view img,
.vscode-dark img,
.vscode-light img {
    max-width: 100%;
    height: auto;
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-top: 0.2em;
    margin-bottom: 0.2em;
}

.cm-contentContainer .image-embed {
    text-align: center;
}

.markdown-preview-view pre {
    font-size: 80%;
    background-color: var(--container-header-background-color);
    margin-top: 0.2em;
    margin-bottom: 0.2em;
    padding: 0.5em;
}

article pre.mermaid {
    text-align: center;
}

.HyperMD-codeblock {
    font-size: 80% !important;
    border-left: 1px solid var(--container-header-background-color);
    border-right: 1px solid var(--container-header-background-color);
    margin-top: 0.2em;
    margin-bottom: 0.2em;
    padding: 0.5em;
    max-width: 100% !important;
}

.HyperMD-codeblock-bg {
    background-color: var(--container-header-background-color) !important;
}

.HyperMD-codeblock-begin {
    border-top: 1px solid var(--container-header-background-color);
    font-size: 30% !important;
}

.HyperMD-codeblock-end {
    border-bottom: 1px solid var(--container-header-background-color);
    font-size: 30% !important;
}

.cm-contentContainer .MathJax {
    padding-top: 0em !important;
    padding-bottom: 1em !important;
}

article ::selection,
.markdown-preview-view ::selection,
.vscode-dark ::selection,
.vscode-light ::selection {
    background-color: var(--container-selection-background-color);
}

/*********
Side Menu
*********/

aside {
    position: fixed;
    top: 0rem;
    right: 0rem;
    margin: 1rem;
    width: 20rem;
    z-index: 1000;
}

aside #menu-bar {
    text-align: right;
}

aside #toc {
    margin: 0.2em;
}

aside #toc a {
    color: gray;
}

aside #toc a:hover {
    color: royalblue;
}

aside #toc li {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

aside #toc li.active a {
    color: royalblue;
    font-weight: bold;
}

@media (max-width: 1400px) {
    aside {
        display: none;
    }
    aside #toc {
        display: none !important;
    }
}

footer {
    max-width: 7.4in;
    margin: 1em auto;
    padding: 1em;
    text-align: center;
}

article div#search-results a {
    display: inline-block;
    white-space: nowrap; 
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%; 
}
