:root {
    --padding: 2rem;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    box-sizing: border-box;
    font-family: sans-serif;
    font-size: 14px;
    letter-spacing: 0.04rem;
    line-height: 1.6;
    background: whitesmoke;
    color: darkslategray;
}

header {
    margin-bottom: 2rem;
    position: relative;
}

h1 .home-link {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
}

h1 .home-link img {
    height: 3rem;
    width: auto;
}

main {
    max-width: 1100px;
    padding: var(--padding);
    margin: 0 auto;
    position: relative;
}

h1 {
    margin: 1rem 0 0.5rem 0;
    font-size: 3rem;
    font-weight: 400;
    line-height: 100%;
}

h2 {
    margin: var(--padding) 0;
    font-weight: 400;
    line-height: 100%;
}

h3 {
    margin: 0;
    font-size: 2rem;
    font-weight: 400;
    line-height: 100%;
}

img {
    max-width: 100%;
    height: auto;
}

p {
    margin: 1.5rem 0;
}

input[type="text"] {
    border-radius: 0;
    border: 1px solid;
}

input {
    background: #ffffff;
}

.header__back-link {
    margin: 0 0 0.5rem 0;
}

.header__home-links {
    position: absolute;
    right: 1rem;
    top: 0;
    gap: 2rem;
    display: flex;
    margin: 0;
}

.header__home-icon {
    z-index: 100;
    position: relative;
}
.header__home-icon img {
    display: inline-block;
    height: 3rem;
}

.text-right {
    text-align: right;
}

.flex-column {
    display: flex;
    flex-direction: column;
}

.flex-row {
    display: flex;
    flex-direction: row;
}

.wrap-row {
    flex-wrap: wrap;
}

.space-between {
    justify-content: space-between;
}

.justify-end {
    justify-content: flex-end;
}

.align-baseline {
    align-items: baseline;
}

.no-wrap {
    white-space: nowrap;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 1rem;
}

.mt-0 {
    margin-top: 0;
}

.ranking {
    align-items: flex-start;
}

.ranking .label {
    height: 0.75rem;
}

.ranking p {
    margin: 0 0 0 var(--padding);
}

.ranking>div:first-child {
    width: 150px;
    align-items: center;
}

.progress-bar {
    background: gainsboro;
    border-radius: 10px;
    overflow: hidden;
    width: 100px;
    position: relative;
    height: 1rem;
    margin: 0.125rem 0.5rem 0 0;
}

.progress-bar>div {
    position: absolute;
    height: 100%;
}

.score-0,
.score-20 {
    background: hsl(300, 20%, 50%);
}

.score-40 {
    background: hsl(300, 40%, 50%);
}

.score-60 {
    background: hsl(300, 60%, 50%);
}

.score-80 {
    background: hsl(300, 80%, 50%);
}

.score-100 {
    background: hsl(300, 100%, 50%);
}

ol {
    padding: 0;
    margin: 0;
    list-style: none;
}

#episodes {
    margin: 0 calc(-1 * var(--padding));
}

.episode {
    border-top: 1px solid;
    padding: var(--padding);
}

.episode-title {
    margin-bottom: var(--padding);
}

.episode:last-child {
    border-bottom: 1px solid;
}

.episode-content {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.content-col p:first-child {
    margin-top: 0;
}

.content-col,
.meta-col,
.wiki-col {
    padding: 0 var(--padding);
}

.meta-col {
    padding-right: 0;
    flex: 1 1 32%;
}

.content-col {
    padding-left: 0;
    flex: 1 1 38%;
}

.wiki-col {
    text-align: center;
    flex: 0 0 240px;
    text-align: center;
}

header .categories {
    margin-top: var(--padding);
}

.categories {
    margin-top: 3rem;
    display: flex;
    flex-wrap: wrap;
}

.categories a {
    text-decoration: none;
    border: 1px solid #dfdfff;
    margin: -1px 0 0 -1px;
    padding: 0.375rem 0.5rem;
    max-width: 50%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.categories a:hover {
    background: #dfdfff;
}

.header__all-imgs {
    margin-top: 1.5rem;
    min-height: 6rem;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}
.header__all-imgs img {
    display: block;
    max-height: 6rem;
    width: auto;
    max-width: initial;
}

.no-results {
    padding: var(--padding);
    color: gray;
}

.attribution p {
    margin-top: 5rem;
    font-size: 0.875rem;
}

@media screen and (max-width: 776px) {
    .m-column {
        flex-direction: column;
        flex: 1 1 auto;
    }

    .content-col {
        padding-right: 0;
        margin-bottom: 2rem;
    }

    .meta-col {
        padding-left: 0;
    }

    .wiki-col {
        padding: 0;
        margin-bottom: 4rem;
        flex: 1 1 auto;
    }

    .categories a {
        max-width: 100%;
        font-size: 0.875rem;
    }
}
