/*!
 *  Hack typeface https://github.com/source-foundry/Hack
 *  License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md
 */
@font-face {
    font-family: 'Hack';
    src: url('assets/fonts/hack-regular-subset.woff2?sha=3114f1256') format('woff2'), url('assets/fonts/hack-regular-subset.woff?sha=3114f1256') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Hack';
    src: url('assets/fonts/hack-bold-subset.woff2?sha=3114f1256') format('woff2'), url('assets/fonts/hack-bold-subset.woff?sha=3114f1256') format('woff');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Hack';
    src: url('assets/fonts/hack-italic-subset.woff2?sha=3114f1256') format('woff2'), url('assets/fonts/hack-italic-webfont.woff?sha=3114f1256') format('woff');
    font-weight: 400;
    font-style: italic;
}

@font-face {
    font-family: 'Hack';
    src: url('assets/fonts/hack-bolditalic-subset.woff2?sha=3114f1256') format('woff2'), url('assets/fonts/hack-bolditalic-subset.woff?sha=3114f1256') format('woff');
    font-weight: 700;
    font-style: italic;
}

:root {
    /* invariant */
    --accent-csharp: #9179e4;
    --accent-flutter: #00c7fa;
    --accent-rust: #a75c00;
    --accent-python: #306998;
    --accent-javascript: #f0db4f;

    overscroll-behavior: none;
    font-family: Hack, monospace;
    font-display: swap;
    color: var(--font);
    background-image: url(assets/textures/desk.webp);

    /* color scheme dependant */
    --background: #f0f4f9;
    --card: #ffffff;
    --font: #191919;
    --font-strong: #000000;
    --font-weak: #666666;
}

html {
    font-size: min(max(100%, 3vmin), 150%);
}

@media (prefers-color-scheme: dark) {
    :root {
        --background: #1e1f20;
        --card: #0e0e0e;
        --font: #cccccc;
        --font-strong: #ffffff;
        --font-weak: #999999;
    }

    .links>a>img {
        filter: invert();
    }
}

div,
button {
    transition: transform 0.35s;
    transition-timing-function: ease-in-out;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--font-strong);
}

code {
    font-family: Hack, monospace;
    background-color: var(--card);
    border: 1px solid var(--font-weak);
    border-radius: 0.25rem;
}

.hover {
    transition: opacity 0.15s;
    opacity: 1;
}

.hover:hover {
    opacity: 0.85;
}

.weak {
    font-size: 0.75rem;
    color: var(--font-weak);
    font-style: italic;
}

.tab {
    position: fixed;
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    user-select: none;
    cursor: pointer;
    border: 0;
    padding: 0;
    color: var(--font-strong);
}

.tab.about {
    background-image: url(assets/textures/folder-cyan.png);
}

.tab.work {
    background-image: url(assets/textures/folder-magenta.png);
}

.tab.personal {
    background-image: url(assets/textures/folder-yellow.png);
}

.folder {
    padding: 1rem;
    position: fixed;
    background-color: var(--background);
    border-color: var(--font-weak);
    border-width: 1rem;
    border-style: solid;
    overflow: scroll;
    scrollbar-width: none;
    text-align: center;
}

.folder>section {
    padding-top: 0.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--font-weak);
    margin-bottom: 1rem;
    overflow: hidden;
    text-align: justify;
}

.folder.about {
    border-image: url(assets/textures/folder-cyan.png) 20% round;
}

.folder.work {
    border-image: url(assets/textures/folder-magenta.png) 20% round;
}

.folder.personal {
    border-image: url(assets/textures/folder-yellow.png) 20% round;
}

.links>a>span {
    font-size: 1rem;
    cursor: pointer;
}

.links>a>img {
    width: 2rem;
    height: 2rem;
    padding: 0.5rem;
    cursor: pointer;
}

.projects {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.project {
    display: flex;
    flex-wrap: wrap;
    flex-basis: 30rem;
    flex-grow: 1;
    background-color: var(--card);
    color: var(--font);
    text-align: justify;
    text-decoration: none;
    border-radius: 1rem;
    padding: 1rem;
    cursor: pointer;
}

.project.csharp>div>h2 {
    color: var(--accent-csharp);
}

.project.flutter>div>h2 {
    color: var(--accent-flutter);
}

.project.rust>div>h2 {
    color: var(--accent-rust);
}

.project.python>div>h2 {
    color: var(--accent-python);
}

.project.javascript>div>h2 {
    color: var(--accent-javascript);
}

.project>img {
    width: 100%;
    border-radius: 4px;
}

@media (orientation: landscape) {
    .tab {
        width: 2.5rem;
        height: calc(100% / 3);
        writing-mode: sideways-lr;
        border-radius: 1rem 0 0 1rem;
        left: 1rem;
    }

    .tab.about {
        top: 1rem;
    }

    .tab.work {
        top: calc(100% / 3);
    }

    .tab.personal {
        top: calc(100% * 2 / 3 - 1rem);
    }

    .folder {
        top: 1rem;
        right: 1rem;
        bottom: 1rem;
        left: 3.25rem;
    }
}

@media (orientation: portrait) {
    .tab {
        height: 2.5rem;
        width: calc(100% / 3);
        border-radius: 1rem 1rem 0 0;
        top: 1rem;
    }

    .tab.about {
        left: 1rem;
    }

    .tab.work {
        left: calc(100% / 3);
    }

    .tab.personal {
        left: calc(100% * 2 / 3 - 1rem);
    }

    .folder {
        top: 3.25rem;
        right: 1rem;
        bottom: 1rem;
        left: 1rem;
    }
}