body > footer {
    --footerWidth : 100vw;
    --footerHeight: 320px;
    --footerRadius: 40px;
    position: relative;
    border-radius: var(--footerRadius);
    width : var(--footerWidth);
    height: var(--footerHeight);
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
body > footer .contents {
    position: relative;
    --contentsRadius: var(--baseRadius);
    --contentsPadding: 10px;
    --titlesMargin: calc(
        var(--contentsPadding) * 2
    );
    --contentsWidth : calc(100%);
    --contentsHeight: calc(100%);

    overflow: hidden;

    width : var(--contentsWidth);
    height: var(--contentsHeight);

    box-shadow: var(--baseBoxShadow);

    border-top-left-radius : var(--contentsRadius);
    border-top-right-radius: var(--contentsRadius);
}
body > footer .contents > div {
    width: max-content;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
    position: absolute;
}
body > footer .contents > div.left {
    left: var(--titlesMargin);
}
body > footer .contents > div.right {
    right: var(--titlesMargin);
    align-items: flex-end;
    text-align: right;
}
body > footer .contents > div.top {
    top: var(--titlesMargin);
}
body > footer .contents > div.bottom {
    bottom: calc(var(--titlesMargin) * 2);
    --bottomPadding: calc(
        var(--titlesMargin)
    );
    padding: var(--bottomPadding);
    width: calc(100% - var(--bottomPadding) * 2);
    height: 50%;
    position: absolute;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: flex-end;
    flex-direction: column;
}
body > footer .contents > div.bottom .top {
    width: 100%;
    justify-content: space-between;
    align-items: flex-end;
    display: flex;
    flex-direction: row;
}
body > footer .contents > div.bottom .top .right {
    text-align: right;
}
body > footer .contents > div.bottom .bottom {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    bottom: 0;
    font-size: .5em;
}
body > footer .contents .titles {
    font-size: 1.5em;
}
body > footer .contents .titles.right {
    bottom: 0;
    right: 0;
}
body > footer .contents .langs {
    flex-direction: row;
}
body > footer .contents .credits {
    font-size: 1.5em;
    bottom: 0;
    left: 0;
}
body > footer .contents .titles .date {
    font-size: .8em;
}