// =============================
// variables.scss
// =============================
// Contains all the useful variables for colors, sizes...

// THEME COLORS
:root{

    --c-themePrimaryLight: #EFEFEF;
    --c-themePrimaryDark:  #101010;
    --c-themeSecondaryLight: #DADADA;
    --c-themeSecondaryDark: #252525;
    --c-themeTerniaryLight: #AEAEAE;
    --c-themeTerniaryDark: #515151;
    --c-themeQuaternaryLight: #919191;
    --c-themeQuaternaryDark: #888888;

    --c-themeHueRed: #C02717;
    --c-themeHueGreen: #8EA604;
    --c-themeHueBlue: #2E86AB;
    --c-themeHueOrange: #E59500;
    --c-themeHuePurple: #9F00CE;
    --c-themeHueBrown: #230007;
}

// ELEMENT COLORS
:root{

    // *** Default light. ***
    --c-articleHeading: var(--c-themePrimaryDark);
    --c-articleParagraph: var(--c-themeSecondaryDark);
    --c-articleBackground: var(--c-themePrimaryLight);

    --c-pageBackground: var(--c-themePrimaryLight);

    --c-headerImageFilter: none;
    --c-menuLinks: var(--c-themePrimaryDark);
    --c-menuDepth0: var(--c-themeSecondaryLight);
    --c-menuItemsFilter: brightness(0);
    --c-menuItemsFilterHover: none;
    --c-menuShadow: rgba(0,0,0,0.5);

    --c-snippetBackgroundExternal: rgba(239, 239, 239, 0.425);
    --c-snippetBackgroundInternal: var(--c-pageBackground);
    --c-snippetHeading: var(--c-themePrimaryDark);
    --c-snippetDate: var(--c-themeSecondaryDark);
    --c-snippetAuthor: var(--c-themePrimaryDark);
    --c-snippetShadowHover: rgba(0,0,0,0.5);
    --c-snippetShadow:  rgba(0, 0, 0, 0);

    --c-postTitle: var(--c-themePrimaryDark);
    --c-postText: var(--c-themePrimaryDark);
    --c-pageTitle: var(--c-themePrimaryDark);
    --c-pageText: var(--c-themePrimaryDark);

    --c-feed-title: var(--c-themePrimaryDark);

    --c-link: var(--c-themeTerniaryDark);
    --c-linkVisited: var(--c-themeQuaternaryDark);
    --c-linkHover: var(--c-themePrimaryDark);
    --c-linkActive: var(--c-themePrimaryDark);

    --c-footerText: var(--c-themePrimaryDark);
    --c-footerImageFilter: none;

    --c-codeShadow:  rgba(0, 0, 0, 0.5);
    --c-codeShadowHover:  rgba(0, 0, 0, 0.1);

    --c-navigator: var(--c-themePrimaryDark);
    --c-navigatorFilter: none;

    --c-noCategoryBackground: var(--c-themePrimaryDark);
    --c-noCategoryText: var(--c-themePrimaryLight);

    --c-tableBorder: var(--c-themePrimaryDark);

    --c-subtitle: var(--c-themeTerniaryDark);

    //Syntax highlighting.
    .highlight .hll { background-color: #ffffcc }
    .highlight .c { color: #8f5902; font-style: italic } /* Comment */
    .highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */
    .highlight .g { color: #000000 } /* Generic */
    .highlight .k { color: #204a87; font-weight: bold } /* Keyword */
    .highlight .l { color: #000000 } /* Literal */
    .highlight .n { color: #000000 } /* Name */
    .highlight .o { color: #ce5c00; font-weight: bold } /* Operator */
    .highlight .x { color: #000000 } /* Other */
    .highlight .p { color: #000000; font-weight: bold } /* Punctuation */
    .highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */
    .highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */
    .highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */
    .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */
    .highlight .gd { color: #a40000 } /* Generic.Deleted */
    .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */
    .highlight .gr { color: #ef2929 } /* Generic.Error */
    .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
    .highlight .gi { color: #00A000 } /* Generic.Inserted */
    .highlight .go { color: #000000; font-style: italic } /* Generic.Output */
    .highlight .gp { color: #8f5902 } /* Generic.Prompt */
    .highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */
    .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
    .highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */
    .highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */
    .highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */
    .highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */
    .highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */
    .highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */
    .highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */
    .highlight .ld { color: #000000 } /* Literal.Date */
    .highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */
    .highlight .s { color: #4e9a06 } /* Literal.String */
    .highlight .na { color: #c4a000 } /* Name.Attribute */
    .highlight .nb { color: #204a87 } /* Name.Builtin */
    .highlight .nc { color: #000000 } /* Name.Class */
    .highlight .no { color: #000000 } /* Name.Constant */
    .highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */
    .highlight .ni { color: #ce5c00 } /* Name.Entity */
    .highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */
    .highlight .nf { color: #000000 } /* Name.Function */
    .highlight .nl { color: #f57900 } /* Name.Label */
    .highlight .nn { color: #000000 } /* Name.Namespace */
    .highlight .nx { color: #000000 } /* Name.Other */
    .highlight .py { color: #000000 } /* Name.Property */
    .highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */
    .highlight .nv { color: #000000 } /* Name.Variable */
    .highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */
    .highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */
    .highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */
    .highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */
    .highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */
    .highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */
    .highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */
    .highlight .sc { color: #4e9a06 } /* Literal.String.Char */
    .highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */
    .highlight .s2 { color: #4e9a06 } /* Literal.String.Double */
    .highlight .se { color: #4e9a06 } /* Literal.String.Escape */
    .highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */
    .highlight .si { color: #4e9a06 } /* Literal.String.Interpol */
    .highlight .sx { color: #4e9a06 } /* Literal.String.Other */
    .highlight .sr { color: #4e9a06 } /* Literal.String.Regex */
    .highlight .s1 { color: #4e9a06 } /* Literal.String.Single */
    .highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */
    .highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */
    .highlight .vc { color: #000000 } /* Name.Variable.Class */
    .highlight .vg { color: #000000 } /* Name.Variable.Global */
    .highlight .vi { color: #000000 } /* Name.Variable.Instance */
    .highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */
    

    // *** Dark mode ***
    @media (prefers-color-scheme: dark){

        --c-headerImageFilter: invert(1);
        --c-menuLinks: var(--c-themePrimaryLight);
        --c-menuDepth0: var(--c-themeSecondaryLight);
        --c-menuItemsFilter: none;
        --c-menuItemsFilterHover: brightness(100); 
        --c-menuShadow: rgba(255, 255, 255, 0.2);

        --c-articleHeading: var(--c-themePrimaryLight);
        --c-articleParagraph: var(--c-themeSecondaryLight);
        --c-articleBackground: var(--c-themePrimaryDark);

        --c-snippetHeading: var(--c-themePrimaryLight);
        --c-snippetDate: var(--c-themeSecondaryLight);
        --c-snippetAuthor: var(--c-themePrimaryLight);

        --c-snippetShadowHover: rgba(255, 255, 255, 0.5);
        --c-snippetShadow:  rgba(0, 0, 0, 0);

        --c-postTitle: var(--c-themePrimaryLight);
        --c-postText: var(--c-themePrimaryLight);
        --c-pageTitle: var(--c-themePrimaryLight);
        --c-pageText: var(--c-themePrimaryLight);

        --c-feed-title: var(--c-themePrimaryLight);

        --c-pageBackground: var(--c-themePrimaryDark);

        --c-link: var(--c-themeTerniaryLight);
        --c-linkVisited: var(--c-themeQuaternaryLight);
        --c-linkHover: var(--c-themePrimaryLight);
        --c-linkActive: var(--c-themePrimaryLight);

        --c-footerText: var(--c-themePrimaryLight);
        --c-footerImageFilter: invert(1);

        --c-codeShadow:  rgba(0, 0, 0, 0);
        --c-codeShadowHover:  rgba(0, 0, 0, 0);

        --c-navigator: var(--c-themePrimaryDark);
        --c-navigatorFilter: invert(1);

        --c-noCategoryBackground: var(--c-themePrimaryLight);
        --c-noCategoryText: var(--c-themePrimaryDark);

        --c-tableBorder: var(--c-themePrimaryLight);

        --c-subtitle: var(--c-themeTerniaryLight);

        //Syntax highlighting.
        .highlight pre { background-color: #272822; }
        .highlight .hll { background-color: #272822; }
        .highlight .c { color: #75715e } /* Comment */
        .highlight .err { color: #960050; background-color: #1e0010 } /* Error */
        .highlight .k { color: #66d9ef } /* Keyword */
        .highlight .l { color: #ae81ff } /* Literal */
        .highlight .n { color: #f8f8f2 } /* Name */
        .highlight .o { color: #f92672 } /* Operator */
        .highlight .p { color: #f8f8f2 } /* Punctuation */
        .highlight .cm { color: #75715e } /* Comment.Multiline */
        .highlight .cp { color: #75715e } /* Comment.Preproc */
        .highlight .c1 { color: #75715e } /* Comment.Single */
        .highlight .cs { color: #75715e } /* Comment.Special */
        .highlight .ge { font-style: italic } /* Generic.Emph */
        .highlight .gs { font-weight: bold } /* Generic.Strong */
        .highlight .kc { color: #66d9ef } /* Keyword.Constant */
        .highlight .kd { color: #66d9ef } /* Keyword.Declaration */
        .highlight .kn { color: #f92672 } /* Keyword.Namespace */
        .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
        .highlight .kr { color: #66d9ef } /* Keyword.Reserved */
        .highlight .kt { color: #66d9ef } /* Keyword.Type */
        .highlight .ld { color: #e6db74 } /* Literal.Date */
        .highlight .m { color: #ae81ff } /* Literal.Number */
        .highlight .s { color: #e6db74 } /* Literal.String */
        .highlight .na { color: #a6e22e } /* Name.Attribute */
        .highlight .nb { color: #f8f8f2 } /* Name.Builtin */
        .highlight .nc { color: #a6e22e } /* Name.Class */
        .highlight .no { color: #66d9ef } /* Name.Constant */
        .highlight .nd { color: #a6e22e } /* Name.Decorator */
        .highlight .ni { color: #f8f8f2 } /* Name.Entity */
        .highlight .ne { color: #a6e22e } /* Name.Exception */
        .highlight .nf { color: #a6e22e } /* Name.Function */
        .highlight .nl { color: #f8f8f2 } /* Name.Label */
        .highlight .nn { color: #f8f8f2 } /* Name.Namespace */
        .highlight .nx { color: #a6e22e } /* Name.Other */
        .highlight .py { color: #f8f8f2 } /* Name.Property */
        .highlight .nt { color: #f92672 } /* Name.Tag */
        .highlight .nv { color: #f8f8f2 } /* Name.Variable */
        .highlight .ow { color: #f92672 } /* Operator.Word */
        .highlight .w { color: #f8f8f2 } /* Text.Whitespace */
        .highlight .mf { color: #ae81ff } /* Literal.Number.Float */
        .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */
        .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */
        .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */
        .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */
        .highlight .sc { color: #e6db74 } /* Literal.String.Char */
        .highlight .sd { color: #e6db74 } /* Literal.String.Doc */
        .highlight .s2 { color: #e6db74 } /* Literal.String.Double */
        .highlight .se { color: #ae81ff } /* Literal.String.Escape */
        .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */
        .highlight .si { color: #e6db74 } /* Literal.String.Interpol */
        .highlight .sx { color: #e6db74 } /* Literal.String.Other */
        .highlight .sr { color: #e6db74 } /* Literal.String.Regex */
        .highlight .s1 { color: #e6db74 } /* Literal.String.Single */
        .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */
        .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
        .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */
        .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */
        .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */
        .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */

        //.highlight .gh { } /* Generic Heading & Diff Header */
        .highlight .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */
        .highlight .gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */
        .highlight .gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */
    }
}

// SIZES
:root{
    
    --s-p: 1rem;
}

// FONTS
:root{

    --f-header: Roboto;
    --f-text: Roboto Slab;
}

// FIXED SIZES
$s-menuItemWidth: 8rem;
$s-menuItemPadding: 1rem;
$s-m-menuMaxHeight: 1000px;

// TRANSITIONS
$t-smooth: ease .5s;