:root
{
    --body-background-color: #FFE8E0;
    --body-text-color: #000000;
    --side-hover-color: #F2BEAC;
    --main-background-color: #FFFFFF;
    --main-text-color: #000000;
    --accent-color: #800000;
}


* { box-sizing: border-box; }

html, body
{
    min-height: 100vh;
}

body
{
    background-color: var(--body-background-color);
    color: var(--body-text-color);
    margin: 1em 0;
    position: relative;
    font-family: "Roboto", "Open Sans", sans-serif;
    font-weight: 300;
    font-size: .9rem;
}

aside
{
    width: 15rem;
    padding: .25rem;
    text-align: center;
    position: fixed;
    transition: max-width .5s;
    max-width: 100%;
}

aside img.me
{
    max-width: 8em;
    border-radius: 50%;
    transition: max-width .5s;
}

aside > nav
{
    width: fit-content;
    text-align: left;
    margin: 0 auto;
}

aside > nav a
{
    display: block;
    padding: .5em 1em;
    margin: .5em 0;
    text-decoration: none !important;
    background: var(--main-background-color);
    transition: background .5s;
    border-radius: 1em;
}

aside > nav a > span
{
    display: inline-block;
}

aside > h1,
aside > nav a > span
{
    overflow: hidden;
    transition: max-width .5s, max-height .5s, opacity .5s, box-shadow .5s;
    white-space: nowrap;
    max-width: 100%;
    max-height: 100%;
}

aside > nav a > i
{
    width: 1.25em;
    text-align: center;
    margin-right: .5em;
    vertical-align: text-top;
}

aside > nav a:hover
{
    background: var(--side-hover-color);
    box-shadow: .1em .1em .2em rgba(0, 0, 0, .5);
}

aside > nav a.toggle-side
{
    cursor: pointer;
}

aside > nav a.toggle-side > i
{
    transition: transform .5s;
}

.side-collapsed > aside
{
    max-width: min-content;
}

.side-collapsed > aside img.me
{
    max-width: 3em;
}


.side-collapsed > aside a
{
    background: transparent;
    height: 2em;
}

.side-collapsed > aside a.toggle-side > i
{
    transform: rotate(180deg);
}

.side-collapsed > aside a > i
{
    margin-right: 0;
}

.side-collapsed > aside > h1,
.side-collapsed > aside a > span
{
    max-width: 0;
    max-height: 0;
    opacity: 0;
}

main
{
    position: absolute;
    top: 0;
    left: 15rem;
    right: 1em;
    transition: left .5s;
    background-color: var(--main-background-color);
    color: var(--main-text-color);
    border-radius: 1em;
    box-shadow: 0 .3em .3em rgba(0, 0, 0, .3);
    padding: 1.5em;
    line-height: 1.5;
}

main blockquote
{
    margin: .25em;
    line-height: 2;
    text-align: center;
}

main li
{
    line-height: 2;
    margin: 1em 0;
}

b { font-weight: 500; }

a { color: var(--accent-color) !important; }

a > i { margin-right: .25em; }

.side-collapsed > main
{
    left: 3.5rem;
}

a.isbn
{
    padding: .25em .5em;
    white-space: nowrap;
    background: var(--body-background-color);
    border-radius: 2em;
}

footer
{
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 1.5em;
    text-align: center;
}

#design-gallery td
{
  padding: .5em;
}

#design-gallery td:first-child
{
  font-weight: bold;
}

img.preview { height: 5em; transition: transform .5s; }
img.preview:hover { transform: scale(1.25, 1.25); }

.sl-image { box-shadow: 0 0 .25em rgba(0, 0, 0, .5); }

@media screen and (max-width: 40em)
{
    aside, main
    {
        position: relative;
        width: 100% !important;
        top: unset !important;
        left: unset !important;
        right: unset !important;
        font-size: 1rem;
    }

    a.toggle-side
    {
        display: none;
    }

    aside > h1,
    aside > nav a > span,
    .side-collapsed > aside > h1,
    .side-collapsed > aside > nav a > span,
    .side-collapsed > aside
    {
        white-space: normal;
        max-width: 100% !important;
        max-height: 100% !important;
        opacity: 1 !important;
    }

    img.me,
    .side-collapsed > img.me
    {
        max-width: 8em !important;
    }

    footer
    {
        position: relative;
    }
}

@media screen and (prefers-color-scheme: dark)
{
    :root
    {
        --body-background-color: #141414;
        --body-text-color: #FFFFFF;
        --side-hover-color: #282828;
        --main-background-color: #323232;
        --main-text-color: #FFFFFF;
        --accent-color: #FF4040;
    }
}