/*
i use catppuccin color schemes because jod i LOVE catppuccin
*/
@media (prefers-color-scheme: light) {
    /*
    catppuccin latte
    */
    :root {
        --rosewater: #dc8a78;
        --flamingo: #dd7878;
        --pink: #ea76cb;
        --mauve: #8839ef;
        --red: #d20f39;
        --maroon: #e64553;
        --peach: #fe640b;
        --yellow: #df8e1d;
        --green: #40a02b;
        --teal: #179299;
        --sky: #04a5e5;
        --sapphire: #209fb5;
        --blue: #1e66f5;
        --lavender: #7287fd;
        --text: #4c4f69;
        --subtext1: #5c5f77;
        --subtext0: #6c6f85;
        --overlay2: #7c7f93;
        --overlay1: #8c8fa1;
        --overlay0: #9ca0b0;
        --surface2: #acb0be;
        --surface1: #bcc0cc;
        --surface0: #ccd0da;
        --base: #eff1f5;
        --mantle: #e6e9ef;
        --crust: #dce0e8;
    }
}

@media (prefers-color-scheme: dark) {
    /*
    catppuccin mocha
    */
    :root {
        --rosewater: #f5e0dc;
        --flamingo: #f2cdcd;
        --pink: #f5c2e7;
        --mauve: #cba6f7;
        --red: #f38ba8;
        --maroon: #eba0ac;
        --peach: #fab387;
        --yellow: #f9e2af;
        --green: #a6e3a1;
        --teal: #94e2d5;
        --sky: #89dceb;
        --sapphire: #74c7ec;
        --blue: #89b4fa;
        --lavender: #b4befe;
        --text: #cdd6f4;
        --subtext1: #bac2de;
        --subtext0: #a6adc8;
        --overlay2: #9399b2;
        --overlay1: #7f849c;
        --overlay0: #6c7086;
        --surface2: #585b70;
        --surface1: #45475a;
        --surface0: #313244;
        --base: #1e1e2e;
        --mantle: #181825;
        --crust: #11111b;
    }
}

/*
font config, JetBrains Mono
*/

@font-face {
    font-family: "JetBrains Mono";
    src:
        local("JetBrains Mono"),
        url("./assets/fonts/JetBrainsMono/fonts/webfonts/JetBrainsMono-Regular.woff2") format("woff"),
        local("JetBrainsMono Nerd Font");
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: "JetBrains Mono";
    src:
        local("JetBrains Mono"),
        url("./assets/fonts/JetBrainsMono/fonts/webfonts/JetBrainsMono-Bold.woff2") format("woff"),
        local("JetBrainsMono Nerd Font");
    font-weight: bold;
    font-style: bold;
}
@font-face {
    font-family: "JetBrains Mono";
    src:
        local("JetBrains Mono"),
        url("./assets/fonts/JetBrainsMono/fonts/webfonts/JetBrainsMono-Italic.woff2") format("woff"),
        local("JetBrainsMono Nerd Font");
    font-weight: normal;
    font-style: italic;
}
@font-face {
    font-family: "JetBrains Mono";
    src:
        local("JetBrains Mono"),
        url("./assets/fonts/JetBrainsMono/fonts/webfonts/JetBrainsMono-BoldItalic.woff2") format("woff"),
        local("JetBrainsMono Nerd Font");
    font-weight: bold;    
    font-style: italic;
}

/*
font config, Lexend Deca
*/

@font-face {
    font-family: "Lexend Deca";
    src:
        local("Lexend Deca"),
        local("Lexend"),
        url("./assets/fonts/LexendDeca/static/LexendDeca-Regular.ttf") format("opentype");
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: "Lexend Deca";
    src:
        local("Lexend Deca"),
        local("Lexend"),
        url("./assets/fonts/LexendDeca/static/LexendDeca-Bold.ttf") format("opentype");
    font-weight: bold;
    font-style: bold;
}

/*
background wallpaper, font
*/

body {
    background: linear-gradient(125deg, var(--pink), var(--mauve), var(--maroon), var(--peach), var(--teal));
    background-size: 1000% 1000%;
    animation: bg-gradient 10s ease infinite;
    -moz-animation: bg-gradient 10s ease infinite;
    -webkit-animation: bg-gradient 10s ease infinite;
    font-family: "JetBrains Mono";
    font-size: 18px;
    margin: unset !important; /* idk why it does that */
}

/*
styling of the terminal windows
*/

.terminal {
    /* the titlebar of the terminals */
    .term-titlebar {
        display: grid;
        grid-template-columns: 2fr auto 2fr;
        grid-template-areas:
            "term-icon term-title term-buttons";

        margin: -10px 0px -20px;

        /* terminal icon */
        .ph-terminal {
            font-size: 25px;
            align-self: center;
        }
        
        /* title text */
        p, a {
            font-family: "Lexend Deca";
            font-size: 16px;

            color: var(--text);
            text-decoration: none;
            
            grid-column: 2;
        }

        /* window buttons */
        div {
            display: flex;

            height: 22px;
            align-self: center;
            margin-left: auto;
            
            #minimize-btn, #maximize-btn, #close-btn {
                width: 22px;
                height: 22px;

                background: var(--surface2);
                border-radius: 50%;

                transition: .2s background;
            }

            #maximize-btn, #close-btn {
                margin-left: 10px;
            }
        }
    }
    /* the prompt */
    .term-input {
        .folder {
            color: var(--sapphire);
            background-color: var(--crust);
            border-radius: 3em;
            padding: 0px 12px 0px 12px;
        }
        .status {
            color: var(--green);
            font-size: 24px;
            margin-left: 3px;
            margin-right: -8px;
            vertical-align: middle;
        }
        .blink {
            display: none;
            color: var(--text);
            margin-left: 3px;
            padding-bottom: 4px;
            animation: blink .8s linear infinite;
            -moz-animation: blink .8s linear infinite;
            -webkit-animation: blink .8s linear infinite;
        }
    }

    background-color: var(--base);
    color: var(--text);

    border: var(--mantle) solid 3px;
    border-radius: 20px;

    max-width: 48em;
    padding: 14px 24px;

    margin-left: auto;
    margin-right: auto;
    margin-bottom: 3.4em;

    transition: .2s border-color;

    box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}

.terminal:hover {
    .term-titlebar {
        div {
            #minimize-btn {
                background: var(--yellow);
                transition: .2s background;
            }

            #maximize-btn {
                background: var(--green);
                transition: .2s background;
            }

            #close-btn {
                background: var(--red);
                transition: .2s background;
            }
        }
    }
    .term-input {
        .blink {
            display: unset;
        }
    }
    border-color: var(--green);

    transition: .2s border-color;
}
.terminal > .term-titlebar > p:hover, a:hover {
    text-decoration: underline;
}

/*
top navbar styling. attempts to look like a desktop panel/window manager bar
*/
.navbar {
    display: flex;
    flex-direction: row;
    position: fixed;
    top: 0 !important;
    z-index: 10;
    min-width: 100%;
    max-width: 100%;
    min-height: 1.8em !important;
    max-height: 1.8em !important;
    margin-top: .5em;

    font-family: "Lexend Deca";
    align-content: center;
    vertical-align: middle;
    color: var(--text);

    .nav-base {
        padding: 0px .2em !important;
        border-radius: 8px;
        box-shadow: rgba(0, 0, 0, 0.35) 0px 3px 15px;
        max-width: fit-content;
        align-content: center;
    }
    .nav-baselink {
        background-color: var(--green);
        text-decoration: unset !important;
        color: var(--crust);
        margin-left: .5em !important;
    }
    .mobile-dropdown {
        display: none;
    }
    .nav-links {
        background-color: var(--base);
        color: var(--text);
        padding: 0px 5px 0px;
        margin-left: .5em !important;
    }
    .nav-links a {
        color: var(--text);
        text-decoration: unset !important;
    }
    .nav-links a:hover {
        color: var(--green);
        text-decoration: underline !important;
    }
    .nav-systray {
        background-color: var(--crust);
        color: var(--text);
        margin-left: auto !important;
        margin-right: .5em !important;
        i {
            padding: 0px 2px 0px 2px;
        }
    }

    a, p {
        margin: unset !important;
    }
    small {
        opacity: .7;
    }
}

/*
text formatting and config stuff
font-family and <p> is set under .terminal
*/

/* the only headings i use */
h1, h1 a {
    color: var(--text);
    font-size: 32px;
    text-decoration: none;
}
/* apparently having more than one h1 is against web standards
but i prefer how it looks so i just use the same styling again */
h2, h2 a {
    color: var(--text);
    font-size: 32px;
    text-decoration: none;
}
h3 {
    font-size: 20px
}
/* TEXT */
p, li, button {
    font-size: 18px;
}
/* links should look good i think */
a {
    font-size: 18px;
    color: var(--green);
}
/* smol text */
small, small a {
    font-size: 14px;
}
/* lists need some styling */
li {
    margin-left: -1em;
    padding-bottom: 18px;
}
/* gay ass text */
.rainbow {
    animation: 2s linear infinite rainbow;
    -webkit-animation: 2s linear infinite rainbow;
    -moz-animation: 2s linear infinite rainbow;
}
/* heading 1 is also clickable */
h1 a:hover {
    text-decoration: underline;
}
/*
line seperator
*/
#seperator {
    display: block;
    height: 1px;
    width: auto;
    margin-top: 20px;
    margin-bottom: 20px;
    border-bottom: 1px var(--surface2) solid;
}
/*
summary styling
*/
summary {
    display: flex;
} 
summary::after {
    font-family: "Phosphor-Fill" !important;
    content: '\e136';
    align-self: center;
    margin-left: .70em;
    transition: 0.2s;
} 
details[open] > summary::after {
    transform: rotate(180deg);
}

/*
about me section/terminal
*/
.terminal:nth-child(2) {
    margin-top: 3.8em;
}

#sneexy > section {
    #pfp {
        width: 256px;
        height: 256px;

        animation: 3s linear infinite spin-y;

        margin-top: 1em;
        margin-bottom: 1em;
    }

    #lastfm {
        background-color: color-mix(in srgb, var(--red) 25%, transparent);
        display: inline-flex;
        align-items: center;
        padding: .6em;
        border-radius: 1em;
        a {
            color: var(--red);
        }
        a i {
            font-size: 1.5em;
            padding-right: .3mm;
            vertical-align: middle;
        }
        a:has(i) {
            text-decoration: none !important;
        }
        img {
            padding-top: .9em;
            max-width: auto;
        }
    }

    h1 {
        margin-bottom: 1px;
    }

    p {
        margin-top: 3px;
    }

    text-align: center;
}

/*
socials and links
*/
.socials-contacts-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: .5em;
}
.social-container {
    display: inline-flex;
    align-items: center;
    margin: .3em;
    padding: .2em;
    border-radius: 1em;
    background-color: var(--crust);
    p, a, small {
        padding-left: 1mm;
        padding-right: 1mm;
        margin-top: .8mm;
        margin-bottom: .8mm;
    }
    a i {
        color: var(--text) !important;
        font-size: 1.5em;
        padding-left: .8mm;
        padding-right: .8mm;
        vertical-align: middle;
    }
    a:has(i) {
        text-decoration: none !important;
    }
}
#fedi {
    background-color: color-mix(in srgb, var(--peach) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--peach);
        text-decoration: underline;
        small {
            color: var(--peach) !important;
            text-decoration: underline;
        }
    }
}
#email {
    background-color: color-mix(in srgb, var(--red) 25%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--red);
        text-decoration: underline;
    }
    i {
        color: var(--text) !important;
        font-size: 1.5em;
        padding-left: 1.8mm;
        padding-right: 2.8mm;
        vertical-align: middle;
    }
}
#listenbrainz {
    background-color: color-mix(in srgb, var(--mauve) 25%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--mauve);
        text-decoration: underline;
    }
}
#gitgay {
    background-color: color-mix(in srgb, var(--red) 10%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--mauve);
        text-decoration: underline;
    }
}
#blog {
    background-color: color-mix(in srgb, var(--pink) 10%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--pink);
        text-decoration: underline;
    }
}
#music {
    background-color: color-mix(in srgb, var(--sky) 10%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--sky);
        text-decoration: underline;
    }
}
#shitposts {
    background-color: color-mix(in srgb, var(--red) 10%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--red);
        text-decoration: underline;
    }
}
#internet-archive {
    background-color: color-mix(in srgb, var(--overlay2) 10%, transparent);
    p, a {
        color: var(--text);
        text-decoration: none;
    }
    p:hover, a:hover {
        color: var(--text);
        text-decoration: underline;
    }
}

/*
quotes
*/
.quotes-container {
    display: inline-block;
    text-align: center;
    margin: .3em;
    padding: .2em;
    border-radius: 1em;
    background-color: var(--crust);
    p, a, small {
        padding-left: 1mm;
        padding-right: 1mm;
        margin-top: .8mm;
        margin-bottom: .8mm;
    }
}
#limineow {
    background-color: color-mix(in srgb, var(--red) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--red);
        text-decoration: underline;
        small {
            color: var(--red) !important;
            text-decoration: underline;
        }
    }
}
#bready {
    background-color: color-mix(in srgb, var(--peach) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--peach);
        text-decoration: underline;
        small {
            color: var(--peach) !important;
            text-decoration: underline;
        }
    }
}
#mikoto {
    background-color: color-mix(in srgb, var(--lavender) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--lavender);
        text-decoration: underline;
        small {
            color: var(--lavender) !important;
            text-decoration: underline;
        }
    }
}
#av70 {
    background-color: color-mix(in srgb, var(--mauve) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--mauve);
        text-decoration: underline;
        small {
            color: var(--mauve) !important;
            text-decoration: underline;
        }
    }
}
#vozy {
    background-color: color-mix(in srgb, var(--pink) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--pink);
        text-decoration: underline;
        small {
            color: var(--pink) !important;
            text-decoration: underline;
        }
    }
}
#guigui {
    background-color: color-mix(in srgb, var(--green) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--green);
        text-decoration: underline;
        small {
            color: var(--green) !important;
            text-decoration: underline;
        }
    }
}
#binbows {
    background-color: color-mix(in srgb, var(--crust) 25%, transparent);
    p, a, small {
        color: var(--text);
        text-decoration: none;
    }
    a:hover {
        color: var(--text);
        text-decoration: underline;
        small {
            color: var(--text) !important;
            text-decoration: underline;
        }
    }
}

/*
buttons
*/
.buttons {
    font-size: 0px;
    img {
        margin-right: 5px;
        image-rendering: auto;
        image-rendering: crisp-edges;
        image-rendering: pixelated;
    }
}

/*
footer/credits
*/
footer {
    .fediring {
        a {
            display: inline-grid;
            font-size: 24px;
            color: var(--green);
            margin-bottom: .5em;
            vertical-align: bottom;
        }
        [href="https://fediring.net"] {
            color: var(--base);
            background: var(--flamingo);
            padding: 0px 10px 0px 10px;
            border-radius: 5px;
        }
        [href="https://keithhacks.cyou/furryring.php"] {
            color: var(--base);
            background: var(--rosewater);
            padding: 0px 10px 0px 10px;
            border-radius: 5px;
        }
        [href="https://stellophiliac.github.io/roboring"] {
            @media (prefers-color-scheme: light) {
                color: var(--base);
            }
            @media (prefers-color-scheme: dark) {
                color: var(--text);
            }
            background: var(--overlay0);
            padding: 0px 10px 0px 10px;
            border-radius: 5px;
        }
        [href*="prev"] {
            color: var(--base);
            background: var(--yellow);
            padding: 4px 6px;
            border-radius: 5px;
        }
        [href*="next"] {
            color: var(--base);
            background: var(--green);
            padding: 4px 5px;
            border-radius: 5px;
        }
    }
    p, a {
        text-align: center;
        font-size: 15px;
        margin: .2em 0px .2em;
        text-decoration: none;
    }
    img {
        padding-top: 18px;
        max-width: 30%;
        display: flex;
        margin-left: auto;
        margin-right: auto;
    }
    .inner-footer {
        text-align: center;
        padding-top: 14px;
        padding-bottom: 14px;
        i {
            font-size: 2.4em;
        }
        a:not(:last-child):has(i) {
            margin-right: 1em;
        }
    }
}

/*
animations
*/
@keyframes blink {
    0% { opacity: 0; }
    50% { opacity: 1.0; }
    100% { opacity: 0; }
}
@keyframes blink-navbar-text {
    0% { opacity: 0; }
    50% { opacity: .8; }
    100% { opacity: 0; }
}
@keyframes spin-y {
    /* values: 128px, 256px, 348px, 396px*/
    0% { transform: perspective(396px) rotateY(0); }
    100% { transform: perspective(396px) rotateY(360deg); }
}
@keyframes rainbow {
    0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); }
    100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); }
}
@keyframes bg-gradient {
    0% { background-position: 0% 27% }
    50% { background-position: 100% 74% }
    100% { background-position: 0% 27% }
}
@-moz-keyframes blink {
    0% { opacity: 0; }
    50% { opacity: 1.0; }
    100% { opacity: 0; }
}
@-moz-keyframes blink-navbar-text {
    0% { opacity: 0; }
    50% { opacity: .8; }
    100% { opacity: 0; }
}
@-moz-keyframes spin-y {
    /* values: 128px, 256px, 348px, 396px*/
    0% { transform: perspective(396px) rotateY(0); }
    100% { transform: perspective(396px) rotateY(360deg); }
}
@-moz-keyframes rainbow {
    0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); }
    100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); }
}
@-moz-keyframes bg-gradient {
    0% { background-position: 0% 27% }
    50% { background-position: 100% 74% }
    100% { background-position: 0% 27% }
}
@-webkit-keyframes blink {
    0% { opacity: 0; }
    50% { opacity: 1.0; }
    100% { opacity: 0; }
}
@-webkit-keyframes blink-navbar-text {
    0% { opacity: 0; }
    50% { opacity: .8; }
    100% { opacity: 0; }
}
@-webkit-keyframes spin-y {
    /* values: 128px, 256px, 348px, 396px*/
    0% { transform: perspective(396px) rotateY(0); }
    100% { transform: perspective(396px) rotateY(360deg); }
}
@-webkit-keyframes rainbow {
    0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); }
    100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); }
}
@-webkit-keyframes bg-gradient {
    0% { background-position: 0% 27% }
    50% { background-position: 100% 74% }
    100% { background-position: 0% 27% }
}

/*
modify widths and spacing depending on the size of the display
*/
@media screen and (max-width: 59em) {
    .navbar {
        min-height: 1.8em !important;
        max-height: 1.8em !important;
        flex-wrap: wrap;

        .nav-base {
            padding: .27em .2em !important;
        }
        .nav-baselink {
            display: none !important;
        }
        .mobile-dropdown {
          position: relative !important;
          display: inline-block !important;
        }
        .dropdown-content {
          display: none;
          position: absolute;
          margin: .5em 0px 0px .4em !important;
          background-color: var(--base);
          min-width: 2em;
          border-radius: 8px;
          box-shadow: rgba(0, 0, 0, 0.35) 0px 3px 15px;
          z-index: 1;
          a {
            display: inline-flex;
            align-items: center;
            color: var(--text);
            padding: .6em .7em;
            text-decoration: none;
          }
          a:hover {
            color: var(--green);
            text-decoration: underline;
          }
          i {
            padding-right: .4em;
          }
        }
        .show-dropdown {
          display: block;
        }
        .nav-baselink-mobile {
            display: block !important;
            font-family: "Lexend Deca";
            background-color: var(--green);
            text-decoration: unset !important;
            color: var(--crust);
            margin-left: .4em !important;
            border: unset !important;
            i:not(:first-child) {
                margin-left: -.5em;
                margin-right: -.5em;
                opacity: .6;
            }
        }
        .nav-links {
            display: none !important;
        }
    }

    .terminal:nth-child(2) {
        margin-top: 2.8em;
    }
    .terminal {
        .term-titlebar {
            margin: -16px 0px -24px;
        }
        margin: 0px .7em .7em;
        padding: 10px 16px;
    }
    #sneexy > section {
        #lastfm {
            img {
                max-width: 17em;
            }
        }
    }
    .socials-contacts-list {
        grid-template-columns: repeat(1, 1fr);
    }
}
