@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Noto+Color+Emoji&display=swap');

:root {
    --color-bg: #1e1e1e;
    --color-fg: #d4d4d4;
    --color-accent: #569cd6;
    --color-accent-2: #c586c0;
    --color-border: #3c3c3c;
    --font-mono: 'JetBrains Mono', monospace;
    --font-emoji: 'Noto Color Emoji', sans-serif;
}

body {
    background-color: var(--color-bg);
    color: var(--color-fg);
    font-family: var(--font-mono), var(--font-emoji);
    margin: 0;
    padding: 1rem;
    position: relative;
    min-height: 100vh;
    overflow-y: auto;
}

body * {
    width: max-content;
    height: min-content;
}

@keyframes slight-color-fast-background-flash-animation {
    0% {
        filter: hue-rotate(0deg);
    }

    33% {
        filter: hue-rotate(90deg);
    }

    66% {
        filter: hue-rotate(180deg);
    }

    100% {
        filter: hue-rotate(270deg);
    }
}

@keyframes slight-color-fast-background-flash-animation {
    0% {
        filter: hue-rotate(0deg) sepia();
    }

    33% {
        filter: hue-rotate(90deg);
    }

    66% {
        filter: hue-rotate(180deg);
    }

    100% {
        filter: hue-rotate(270deg);
    }
}

@keyframes slight-color-fast-background-flash-animation-cursor {
    0% {
        filter: brightness(1) contrast(1.2) drop-shadow(0px 5px 0 #ff3b3b) drop-shadow(5px 5px 0 #ff3b3b);
    }

    33% {
        filter: brightness(1.05) contrast(1.3) drop-shadow(5px 0px 0 #35c9ff) drop-shadow(5px 5px 0 #35c9ff);
    }

    66% {
        filter: brightness(1.1) contrast(1.4) drop-shadow(5px 5px 0 #8cff4e) drop-shadow(5px 5px 0 #8cff4e);
    }

    100% {
        filter: brightness(1) contrast(1.25) drop-shadow(5px 5px 0 #f1ff4e) drop-shadow(5px 5px 0 #f1ff4e);
    }
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
button,
li,
img,
a {


    &:hover:not(:active):not(:has(:hover)) {
        color: var(--color-bg);
        background-color: var(--color-fg);
    }

    &:active:not(:has(:active)) {
        animation: slight-color-fast-background-flash-animation 0.1s linear infinite;
        background-color: red;
    }
}

a {
    color: var(--color-accent);

    &:hover:not(:active):not(:has(:hover)) {
        color: var(--color-bg);
        background-color: var(--color-accent);
    }
}


@keyframes spin {
    from {
        transform: translate(-40%, -40%) rotate(0deg);
    }

    to {
        transform: translate(-40%, -40%) rotate(360deg);
    }
}


img.spinning-plate {
    transform-origin: 20% 20%;
    z-index: 99999;
    display: none;
}

img.spinning-plate.oh-no {
    display: block;
    visibility: visible;
    animation: spin .1s linear infinite, slight-color-fast-background-flash-animation-cursor 0.01s linear infinite;
}

* {
    user-select: none;
    user-drag: none;
    --webkit-user-select: none;
    --webkit-user-drag: none;
    --moz-user-drag: none;
    --moz-user-select: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    touch-action: auto;
}

img#thomas {
    position: fixed;
    left:0;
    top:0;
    right:0;
    bottom:0;
    width: 100%;
    height: 100%;
    transform-origin: 50% 50%;
    z-index: -5;
    pointer-events: none;
    opacity: 0.025;
}