html {
    height: 100%;
}

body {
    background: linear-gradient(105deg, rgba(20,20,20,1) 0%, rgb(24 18 18) 100%);
    color: white;
    display: flex;
    flex-direction: row;
    justify-content: center;
    height: 100%;
    margin: 0;
    overflow: hidden;
    font-family: 'Jost', sans-serif;
    --skew: -14deg;
    --unskew: calc(var(--skew)*-1);
    transform: skewX(var(--skew));
}

main {
    overflow: hidden scroll;
    padding: 1em;
    margin: 1em 0;
    scrollbar-width: thin;
    scrollbar-color: #ffffff17 transparent;
    display: grid;
    grid-template-columns: repeat(2, 16em);
    align-content: start;
    gap: 0.5em;
    flex-shrink: 0;
    mask-image: linear-gradient(transparent 0%, black 1em, black calc(100% - 1em), transparent 100%);
    -webkit-mask-image: linear-gradient(transparent 0%, black 1em, black calc(100% - 1em), transparent 100%);
}

main:hover {
    scrollbar-color: #b00000aa transparent;
}

main::-webkit-scrollbar {
    width: 6px;
}

main::-webkit-scrollbar-track {
    background: transparent;
}

main::-webkit-scrollbar-thumb {
    background: #ffffff17;
    border-radius: 3px;
}

main:hover::-webkit-scrollbar-thumb {
    background: #b00000aa;
}

main:hover::-webkit-scrollbar-thumb:hover {
    background: #d40a0aaa;
}

main:hover::-webkit-scrollbar-thumb:active {
    background: #e10e0ecc;
}

aside {
    flex-basis: 20em;
    max-width: 20em;
    min-width: 6em;
    display: flex;
    flex-grow: 1;
    margin: 1em;
}

aside ul {
    margin: 0;
    list-style-type: none;
    padding: 0;
}

.left {
    flex-direction: column;
}

.left > img {
    transform-origin: top right;
}

.left > * {
    transform: skewX(var(--unskew));
}

.right {
    flex-direction: column-reverse;
}

.right li {
    transform: skewX(var(--unskew));
}

main > div {
    grid-column: span 2;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 0.5em;
}

main > div > * {
    transform: skewX(var(--unskew));
}

main > div > h1 {
    margin: 0;
    text-transform: uppercase;
    font-size: 1.6em;
    font-weight: 200;
}

main > div > hr {
    flex-grow: 1;
    margin-left: 0.5em;
    border: none;
    border-top: 3px dotted;
}

main > a {
    text-decoration: none;
    color: white;
}

main > a.file h2::after,
main > a.link h2::after {
    content: '';
    width: 0.7em;
    height: 0.7em;
    display: inline-block;
    background-size: contain;
    margin-left: 0.25em;
    background: white;
    mask-size: contain;
    -webkit-mask-size: contain;
    mask-position: center;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-mode: alpha;
    transition: 0.2s cubic-bezier(.23,1,.32,1);
}

main > a.file > article:hover > h2::after,
main > a.link > article:hover > h2::after {
    background: #e10e0e;
}

main > a.link h2::after {
    mask-image: url("./img/ic_link.svg");
    -webkit-mask-image: url("./img/ic_link.svg");
}

main > a.file h2::after {
    mask-image: url("./img/ic_download.svg");
    -webkit-mask-image: url("./img/ic_download.svg");
}

article {
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: 0.2s cubic-bezier(.23,1,.32,1);
}

article:hover {
    color: #e10e0e;
}

article:hover > div {
    background: #e10e0e17;
}

article > h2,
article > p {
    text-align: center;
    transform: skewX(var(--unskew));
}

article > h2 {
    font-size: 1.4em;
    margin: 0.2em;
    font-weight: 600;
}

article > p {
    font-size: 1.2em;
    margin: 0;
    font-weight: 200;
}

article > div {
    padding: 0.5em 1.5em;
    background: #ffffff17;
    border-radius: 1em;
    position: relative;
}

article > div > img {
    height: 6em;
    max-width: 12em;
    transform: skewX(var(--unskew));
    object-fit: contain;
}

@media screen and (max-width: 900px) {
    main {
        grid-template-columns: repeat(2, 14em);
    }

    article > div > img {
        height: 6em;
        max-width: 10em;
    }
}

@media screen and (max-width: 750px) {
    main {
        grid-template-columns: 14em;
    }

    main > div {
        grid-column: span 1;
    }
}