@font-face {
    font-family: "codefont";
    src: url("fonts/JetBrainsMono-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
}
@font-face {
    font-family: "codefont";
    src: url("fonts/JetBrainsMono-Italic.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
}

/* .class.class increases specificity to override reveal.js default styling */

.pre.pre {
    display: block;
    position: relative;

    overflow-x: hidden;
    margin: 0;
    white-space: pre;
    word-wrap: break-word;
    tab-size: 3rem;
    width: 100%;

    /* reset reveal.js default */
    box-shadow: none;
}

.code.code {
    display: block;
    position: relative;
    padding: 5px;
    width: fit-content;
    max-height: 100%;

    color: #d4d4d4;

    font-family: "codefont", "JetBrains Mono", monospace !important;
    font-weight: 400;
    font-variant-ligatures: common-ligatures;
    line-height: 1.3;
    text-align: left;

    font-size: 32px;
    overflow: visible;

    /* set by pre */
    tab-size: inherit;
}

.code.code ol {
    display: grid;
    margin: 0;
    padding: 0;
    /* list-style-position: inside; */
    /*li::marker {
        content: counters(list-item,'.') '  ';
        color: #6e7681;
    }*/
    counter-reset: index;
    list-style-type: none;
    li::before {
        counter-increment: index;
        content: counters(index, "", decimal);
        display: inline-block;
        text-align: right;
        padding-right: 1em;
        width: 1em;
        color: #6e7681;
    }
}

.code.code ol.no-numbering {
    list-style: none;
}
.code.code ol.no-numbering li::before {
    content: "";
    padding: 0;
    width: 0;
}

.code.code ol:has(.line-highlight) li:not(.line-highlight) {
    opacity: 0.4;
}

.code.code li.line-highlight:has(.spot-highlight) :not(.spot-highlight) {
    opacity: 0.4;
}

.code.code .line-highlight::before {
    color: #cccccc;
}

/* VSCode Dark+ Theme Colors */

.semtok-bracket.semtok-mod-level1 {
    color: #ffd700;
}

.semtok-bracket.semtok-mod-level2 {
    color: #da70d6;
}

.semtok-bracket.semtok-mod-level3 {
    color: #179fff;
}

.semtok-bracket {
    color: red;
}

.semtok-comment {
    color: #6a9955;
    font-style: italic;
}

.semtok-keyword {
    color: #569cd6;
}

.semtok-string {
    color: #ce9178;
}

.semtok-number {
    color: #b5cea8;
}

.semtok-type {
    color: #4ec9b0;
}

.semtok-function {
    color: #dcdcaa;
}

.semtok-method {
    color: #dcdcaa;
}

.semtok-variable {
    color: #9cdcfe;
}

.semtok-parameter {
    color: #9cdcfe;
}

.semtok-namespace {
    color: #4ec9b0;
}

.semtok-operator {
    color: #d4d4d4;
}

.semtok-label {
    color: #c8c8c8;
}

.semtok-mod-format {
    color: #569cd6;
    font-weight: bold;
}

.semtok-variable.semtok-mod-readonly {
    color: #4fc1ff;
}

.semtok-variable.semtok-mod-defaultLibrary.semtok-mod-readonly {
    color: #569cd6;
}

.semtok-keyword.semtok-mod-control {
    color: #c586c0;
}
