:root {
    --color-white: #FFFFFF;
    --color-black: #151827;
    --color-accent: #3fe901;

    --scroll-margin: 20rem;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scroll-behavior: smooth;
    text-decoration: none !important;
}

html {
    font-size: 12px;
}

body {
    width: 100%;
    height: 100%;
    background-color: var(--color-white);
    color: var(--color-black);
    cursor: default;
}

main {
    width: 100%;
    min-height: 100vh;
}

main.page {
    padding: 10rem 1rem 50vh;
    align-items: flex-start;
}

aside {
    position: -webkit-sticky;
    position: sticky;
    top: var(--scroll-margin);
    grid-column: 1/3;
    z-index: 10;
    padding-right: 1rem;
}

aside a{
    display: block;
    margin-bottom: .25rem;
}

a {
    transition: color 300ms;
}

a,
a:active,
a:focus,
a:focus-within,
a:focus-visible,
a:visited,
a p {
    color: var(--color-black);
    cursor: pointer;
    text-decoration: none !important;
    transition: color 300ms !important;
}

a.active,
a:hover,
a:hover * {
    color: var(--color-accent);
}

figure.picture,
img.picture {
    border-radius: 1rem;
}

button {
    background-color: transparent;
    border: none;
    cursor: pointer;
}

ul li,
ul dt,
ul dd,
dl li,
dl dt,
dl dd,
ol li,
ol dt,
ol dd {
    display: block;
    height: fit-content;
    list-style: none;
}


/* TABLET */
@media only screen and (max-width: 900px) {
    a:hover {
        color: var(--color-black);
    }

    a.active {
        color: var(--color-accent);
    }

    article a,
    p > a {
        color: var(--color-accent);
    }
}

/* MOBILE */
@media only screen and (max-width: 425px) {
    main.page {
        padding: 0 1rem 50vh;
    }

    p > a {
        color: var(--color-accent);
    }

    aside {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        padding: 8rem 0 6rem;
        text-align: center;
        transition: top 1s;
    }
}