* {
    padding: 0;
    margin: 0;
}
html, body {
    min-height: 100vh;
    background-color: black;
}
.responsive-table-container {
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-width: 100%;
    min-height: 100%;
}
.responsive-table {
    min-height: 100vh;

    display: flex;
    flex-flow: row wrap;
    justify-content: center;
}
.responsive-cell {
    margin: 0.5ex;
    width: 30vw;
    max-height: 45vh;
}
@media (orientation: portrait) {
    .responsive-cell {
        width: 95vw;
        max-height: 30vh;
    }
}
.responsive-cell img {
    width: 100%;
    height: 100%;
    object-fit: scale-down;
}

/*
@font-face {
    font-family: 'Roboto';
    src: url('fonts/roboto/Roboto-Regular.ttf') @ttf;
}
@font-face {
    font-family: 'Roboto Medium';
    src: url('fonts/roboto/Roboto-Medium.ttf') @ttf;
}
*/
@font-face {
    font-family: 'Roboto Light';
    src: url('fonts/roboto/Roboto-Light.ttf') @ttf;
}
@font-face {
    font-family: 'Roboto Thin';
    src: url('fonts/roboto/Roboto-Thin.ttf') @ttf;
}

.title-ribbon {
    background-color: white;
    font-family: 'Roboto Light', sans-serif;
    font-size: max(3vw, 20px);
    display: grid;
    text-align: center;
    grid-template-columns: max-content auto;
}
.title-ribbon .logo {
    grid-column: 1;
    grid-row-start: 1;
    grid-row-end: 3;

    height: 4ex;
    max-width: 20vw;

    padding: 1ex;
    margin: 0 auto;
}
.title-ribbon .logo img {
    max-height: 100%;
}
.title-ribbon .title {
    grid-column: 2;
    grid-row: 1;
    margin: 0.5ex;
}
.title-ribbon .subtitle {
    grid-column: 2;
    grid-row: 2;
    font-family: 'Roboto Thin', sans-serif;
    margin: 0.5ex;
}

@media (orientation: portrait) {
    .title-ribbon {
        display: block;
    }

    .title-ribbon .logo {
        max-width: calc(75% - 2ex);
    }
}

@media (orientation: landscape) {
    .title-ribbon .logo {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}
