:root {
    /* Background palette */
    --background-primary: #020B16;
    --background-shift: 0.05;

    --background-light: oklch(from var(--background-primary) calc(l + var(--background-shift)) c h);

    --background-dark: oklch(from var(--background-primary) calc(l - var(--background-shift)) c h);

    /* Text and branding */
    --gold: #BEA376;
    --white: #FFFFFF;
    --brand-red: #720033;
    --brand-orange: #FF8200;

    /* Section colours */
    --how-to-play: #FF0033;
    --game-mechanics: #A970FF;
    --locations: #0F73FF;

    /* Shared glow strengths */
    --glow-white-inner: rgba(255, 255, 255, 0.2);
    --glow-white-outer: rgba(255, 255, 255, 0.1);
    --glow-colour-inner-strength: 35%;
    --glow-colour-outer-strength: 15%;
    --glow-purple-inner-strength: 30%;
    --glow-purple-outer-strength: 15%;
    --glow-dark-red-inner-strength: 45%;
    --glow-dark-red-outer-strength: 20%;

    /* Typography */
    --text-title: 3.5rem;
    --text-heading: 2.25rem;
    --text-subheading: 1.5rem;
    --text-normal: 1.125rem;
    --text-paragraph: 1rem;

    /* Borders and separators */
    --separator: #272928;

    /* Shared icon tiers */
    --svg-icon-size-small: 16px;
    --svg-icon-size-medium: 24px;
    --svg-icon-size-large: 32px;
    --image-icon-size-small: 20px;
    --image-icon-size-medium: 32px;
    --image-icon-size-large: 44px;
    --icon-background-size-small: 28px;
    --icon-background-size-medium: 40px;
    --icon-background-size-large: 52px;
    --icon-background-radius-small: 6px;
    --icon-background-radius-medium: 8px;
    --icon-background-radius-large: 10px;

    /* Series-detail media */
    --series-head-size: var(--image-icon-size-small);
    --series-head-size-medium: var(--image-icon-size-medium);
    --series-alignment-size: var(--image-icon-size-small);
    --series-alignment-size-medium: var(--image-icon-size-medium);
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    scroll-behavior: smooth;

    scrollbar-color: var(--gold) var(--background-dark);
    scrollbar-width: thin;
}

html::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

html::-webkit-scrollbar-track {
    background-color: var(--background-dark);
}

html::-webkit-scrollbar-thumb {
    background-color: var(--gold);
    border: 2px solid var(--background-dark);
    border-radius: 999px;
}

img[src$="traitor.png"],
img[src$="faithful.png"],
img[src$="recruited.png"],
img[src$="twist.png"] {
    image-rendering: pixelated;
}

body {
    min-height: 100vh;
    margin: 0;

    display: flex;
    flex-direction: column;

    background-color: var(--background-primary);
    color: var(--gold);

    font-family: Arial, Helvetica, sans-serif;
}

body>main {
    width: 100%;
    flex: 1 0 auto;
}


/* =========================================================
   HEADER
   ========================================================= */

.site-header {
    min-height: 72px;
    padding: 0 5%;

    position: sticky;
    top: 0;
    z-index: 1000;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 30px;

    background-color: var(--background-primary);
    border-bottom: 1px solid var(--separator);
}

.site-brand,
.footer-brand {
    display: flex;
    align-items: center;
    gap: 12px;

    font-size: var(--text-normal);
    font-weight: 700;
    text-decoration: none;
}

.header-brand-area {
    justify-self: start;

    display: flex;
    align-items: center;
    gap: 10px;
}

.brand-icon {
    width: var(--image-icon-size-medium);
    height: var(--image-icon-size-medium);

    flex-shrink: 0;

    object-fit: contain;
}

.brand-name {
    display: inline-flex;
    gap: 4px;

    font-size: inherit;
    font-weight: 700;
    white-space: nowrap;
}

.brand-the {
    color: var(--brand-red);
}

.brand-traitors {
    color: var(--brand-orange);
}

.header-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.nav-link {
    padding: 10px 16px;

    display: flex;
    align-items: center;
    gap: 8px;

    color: var(--gold);
    border-radius: var(--icon-background-radius-medium);

    font-size: var(--text-normal);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;

    transition:
        transform 0.2s ease,
        color 0.2s ease,
        background-color 0.2s ease;
}

.nav-svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);

    flex: 0 0 var(--svg-icon-size-medium);

    fill: currentColor;
}

a.nav-link:hover,
.nav-link.navigation-hover-carried,
.js[data-header-navigation-tab="home"] .nav-link[data-header-tab="home"],
.js[data-header-navigation-tab="series"] .nav-link[data-header-tab="series"],
.js[data-header-navigation-tab="wiki"] .nav-link[data-header-tab="wiki"] {
    color: var(--white);
    transform: scale(1.08);
}

.nav-link.active {
    color: var(--white);
    background-color: var(--background-light);
}

.nav-link.disabled {
    color: rgba(190, 163, 118, 0.5);
    cursor: not-allowed;
}

.wiki-menu-button {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);
    padding: 0;

    display: none;
    flex: 0 0 var(--icon-background-size-medium);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;

    color: var(--gold);
    background: none;
    border: 0;
    border-radius: var(--icon-background-radius-medium);

    cursor: pointer;

    transition:
        color 0.2s ease,
        transform 0.2s ease,
        background-color 0.2s ease;
}

.wiki-menu-button span {
    width: 20px;
    height: 2px;

    display: block;

    background-color: currentColor;
    border-radius: 2px;

    transition:
        transform 0.2s ease,
        opacity 0.2s ease;
}

.wiki-menu-button:hover,
.wiki-menu-button:focus-visible {
    color: var(--white);
    transform: scale(1.15);
}

.wiki-menu-button[aria-expanded="true"] {
    color: var(--white);
    background-color: var(--background-light);
}

.wiki-menu-button[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.wiki-menu-button[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.wiki-menu-button[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}


/* =========================================================
   HEADER ACTIONS
   ========================================================= */

.header-actions {
    justify-self: end;

    display: flex;
    align-items: center;
    gap: 8px;
}

.header-search {
    position: relative;

    display: flex;
    align-items: center;
}

.search-button,
.website-button {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);
    padding: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);
    background: none;
    border: 0;
    border-radius: var(--icon-background-radius-medium);

    text-decoration: none;
    cursor: pointer;

    transition:
        transform 0.2s ease,
        color 0.2s ease,
        background-color 0.2s ease;
}

.search-button:hover,
.website-button:hover {
    color: var(--white);
    transform: scale(1.15);
}

.header-search.open .search-button {
    color: var(--white);
    background-color: var(--background-light);
    transform: scale(1.15);
}

.action-svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);

    flex: 0 0 var(--svg-icon-size-medium);

    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   SEARCH PANEL
   ========================================================= */

.search-popover {
    width: 280px;

    position: absolute;
    top: 50%;
    right: calc(100% + 12px);
    z-index: 20;

    visibility: hidden;
    opacity: 0;

    transform: translate(18px, -21px) scaleX(0.92);
    transform-origin: right center;

    pointer-events: none;

    transition:
        opacity 0.2s ease,
        transform 0.25s ease,
        visibility 0s linear 0.25s;
}

.header-search.open .search-popover {
    visibility: visible;
    opacity: 1;

    transform: translate(0, -21px) scaleX(1);

    pointer-events: auto;

    transition-delay: 0s;
}

.header-search.navigation-restoring .search-button,
.header-search.navigation-restoring .search-popover,
.header-search.navigation-restoring .search-results-panel,
.header-search.navigation-restoring .search-panel {
    transition: none !important;
}

.search-panel {
    width: 100%;
    height: 42px;
    padding: 0 10px 0 14px;

    display: flex;
    align-items: center;
    gap: 10px;

    color: var(--white);
    background-color: var(--background-light);
    border: 1px solid var(--white);
    border-radius: var(--icon-background-radius-medium);

    transition: border-radius 0.2s ease;
}

.search-panel input {
    min-width: 0;
    flex: 1;
    padding: 0;

    color: var(--white);
    background: none;
    border: 0;
    outline: none;

    font: inherit;
}

.search-panel input::-webkit-search-cancel-button {
    display: none;
}

.search-panel input::-webkit-search-decoration {
    display: none;
}

.search-panel input::-ms-clear {
    display: none;
}

.search-panel input::placeholder {
    color: var(--white);
    opacity: 1;
}

.search-clear {
    width: 14px;
    height: 14px;
    padding: 0;

    position: relative;
    flex: 0 0 14px;

    display: none;

    background: none;
    border: 0;

    cursor: pointer;
}

.search-clear::before,
.search-clear::after,
.series-selected-filter-remove::before,
.series-selected-filter-remove::after {
    content: "";

    width: 14px;
    height: 2px;

    position: absolute;
    top: 50%;
    left: 50%;

    background-color: var(--white);
    border-radius: 1px;

    transform-origin: center;
}

.search-clear::before,
.series-selected-filter-remove::before {
    transform: translate(-50%, -50%) rotate(45deg);
}

.search-clear::after,
.series-selected-filter-remove::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.search-panel:has(input:not(:placeholder-shown)) .search-clear {
    display: block;
}


.search-results-panel {
    height: 0;
    overflow: hidden;
    color: var(--white);
    background-color: var(--background-primary);
    border: 0 solid var(--white);
    border-width: 0 1px;
    border-radius: 0 0 var(--icon-background-radius-medium) var(--icon-background-radius-medium);
    transition: height 0.25s ease;
}

.search-popover.has-results .search-panel {
    border-bottom-color: var(--separator);
    border-radius: var(--icon-background-radius-medium) var(--icon-background-radius-medium) 0 0;
}

.search-popover.has-results .search-results-panel {
    border-bottom-width: 1px;
}

.search-result,
.search-no-results {
    min-height: 62px;
    padding: 10px 12px;
}

.search-result {
    display: flex;
    align-items: center;
    gap: 10px;
    color: inherit;
    text-decoration: none;
    background-color: transparent;
    transition: background-color 0.2s ease;
}

.search-result + .search-result {
    border-top: 1px solid var(--separator);
}

.search-result:hover,
.search-result:focus-visible,
.search-result.selected {
    background-color: var(--background-light);
}

.search-result:focus-visible {
    outline: none;
}

.search-result-icon {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);
    flex: 0 0 var(--icon-background-size-medium);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gold);
    border-radius: var(--icon-background-radius-medium);
}

.search-result-icon.with-background {
    background-color: color-mix(in srgb, currentColor 10%, transparent);
}

.search-result-icon.section-how-to-play { color: var(--how-to-play); }
.search-result-icon.section-game-mechanics { color: var(--game-mechanics); }
.search-result-icon.section-locations { color: var(--locations); }

.search-result-icon svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.search-result-icon.filled svg {
    fill: currentColor;
    stroke: none;
}

.search-result-copy {
    min-width: 0;
    flex: 1;
}

.search-result-line {
    display: block;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
}

.search-result-line span {
    display: inline-block;
    min-width: 100%;
}

.search-result-name {
    color: var(--gold);
    font-size: var(--text-normal);
    font-weight: 700;
}

.search-result-path {
    margin-top: 2px;
    color: var(--white);
    font-size: var(--text-paragraph);
}

.search-no-results {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-paragraph);
}

/* =========================================================
   HERO
   ========================================================= */

.hero {
    /* Half the height of a 16:9 frame on landscape screens. */
    height: min(28.125vw, 50vh);

    position: relative;

    display: flex;
    align-items: center;

    padding: clamp(30px, 4vw, 60px) 8%;

    background-image:
        url("images/hero-background.png"),
        url("images/placeholder.png");
    background-position: center center;
    background-size: cover;

    border-bottom: 1px solid var(--separator);

    overflow: hidden;
}

@media (orientation: portrait) {
    .hero {
        /* A full 16:9 frame on portrait screens. */
        height: min(56.25vw, 50vh);
    }
}

.hero-overlay {
    position: absolute;
    inset: 0;

    background: rgba(2, 11, 22, 0.5);
}

.hero-content {
    width: min(78%, 1300px);
    margin: 0 auto;

    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;

    gap: clamp(30px, 7vw, 100px);
}

.hero-text {
    min-width: 0;
}

.hero-eyebrow {
    margin: 0 0 8px;

    color: var(--white);

    font-size: var(--text-normal);
    font-weight: 700;
}

.hero h1 {
    margin: 0;

    font-size: var(--text-title);
    line-height: 1.05;

    white-space: nowrap;
}

.hero-wiki {
    margin: 4px 0 0;

    color: var(--gold);

    font-size: var(--text-title);
    line-height: 1;
    font-weight: 700;
}

.hero-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-logo-image {
    width: clamp(140px, 16vw, 220px);
    height: auto;
    max-height: 220px;

    object-fit: contain;
}


/* =========================================================
   DISCOVER
   ========================================================= */

.discover {
    padding: 55px 5% 34px;

    text-align: center;
}

.discover h2 {
    margin: 0 0 16px;

    color: var(--gold);

    font-size: var(--text-heading);
}

.discover p {
    max-width: 900px;
    margin: 0 auto;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.6;
}

.discover p+p {
    margin-top: 18px;
}


/* =========================================================
   WIKI SECTIONS
   ========================================================= */

.wiki-section {
    --section-color: var(--gold);
    --section-glow-inner-strength: var(--glow-colour-inner-strength);
    --section-glow-outer-strength: var(--glow-colour-outer-strength);

    max-width: 1600px;
    margin: 0 auto;
    padding: 30px 5%;
}

.discover+.wiki-section {
    padding-top: 16px;
}

.section-how-to-play {
    --section-color: var(--how-to-play);
}

.section-game-mechanics {
    --section-color: var(--game-mechanics);
    --section-glow-inner-strength: var(--glow-purple-inner-strength);
    --section-glow-outer-strength: var(--glow-purple-outer-strength);
}

.section-locations {
    --section-color: var(--locations);
}

.section-heading {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 12px;
    margin-bottom: 26px;
}

.section-heading h2 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-subheading);
}


/* Section and card icons */

.section-icon,
.card-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    color: var(--section-color);

    background-color: color-mix(in srgb,
            var(--section-color) 10%,
            transparent);

    border-radius: 8px;
}

.section-icon,
.card-icon {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);
}

.section-icon svg,
.card-icon svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   CARD GRID
   ========================================================= */

.card-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);

    gap: 18px;
}

.wiki-card {
    min-height: 110px;
    padding: 18px;

    display: flex;
    align-items: center;
    gap: 16px;

    background-color: var(--background-light);

    border: 1px solid var(--gold);
    border-radius: 10px;

    cursor: pointer;

    color: inherit;
    text-decoration: none;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.wiki-card:hover {
    border-color: var(--section-color);

    transform: scale(1.04);

    box-shadow:
        0 0 8px color-mix(in srgb,
            var(--section-color) var(--section-glow-inner-strength),
            transparent),
        0 0 16px color-mix(in srgb,
            var(--section-color) var(--section-glow-outer-strength),
            transparent);
}

.card-content {
    min-width: 0;
}

.wiki-card h3 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-normal);
}

.wiki-card p {
    margin: 5px 0 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.4;
}


/* =========================================================
   SERIES HISTORY
   ========================================================= */

.series-history {
    max-width: none;
    margin: 0 auto;
    padding: 55px 0 30px;

    text-align: center;
}

.series-history>h1 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-heading);
}

.series-history-intro {
    max-width: 900px;
    margin: 16px auto 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.6;
}


/* Series controls */

.series-controls {
    margin: 24px 0 30px;
    padding: 12px 16px;

    position: relative;

    background-color: var(--background-dark);
    border-top: 1px solid var(--separator);
    border-bottom: 1px solid var(--separator);
}

.series-controls-inner,
.series-sort-options,
.series-selected-filters {
    display: flex;
    align-items: center;
}

.series-controls-inner {
    max-width: 1600px;
    margin: 0 auto;

    position: relative;
    z-index: 1;

    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

.series-sort-options,
.series-selected-filters {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.series-controls-separator {
    width: 1px;
    min-height: 30px;
    align-self: stretch;
    margin: 2px 4px;

    background-color: var(--separator);
}

.series-selected-filters:empty {
    display: none;
}

.series-sort,
.series-filter-button,
.series-selected-filter {
    min-height: 40px;
    padding: 10px 16px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    color: var(--gold);
    background: none;
    border: 0;
    border-radius: var(--icon-background-radius-medium);

    font: inherit;
    font-size: var(--text-normal);
    font-weight: 700;

    cursor: pointer;

    transition:
        color 0.2s ease,
        background-color 0.2s ease;
}

.series-sort:hover,
.series-filter-button:hover,
.series-selected-filter:hover {
    color: var(--white);
    background-color: var(--background-light);
}

.series-sort.active,
.series-filter-button[aria-expanded="true"],
.series-selected-filter {
    color: var(--white);
    background-color: var(--background-light);
}

.series-sort-options.selection-changing .series-sort {
    transition: none;
}

html[data-series-sort="oldest"] .series-sort[data-series-sort="newest"] {
    color: var(--gold);
    background: none;
}

html[data-series-sort="oldest"] .series-sort[data-series-sort="oldest"] {
    color: var(--white);
    background-color: var(--background-light);
}

.series-filter-button[aria-expanded="true"]:not(:hover) {
    color: var(--white);
}

.series-filter-plus {
    width: 14px;
    height: 14px;

    position: relative;
    flex: 0 0 14px;
}

.series-filter-plus::before,
.series-filter-plus::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    background-color: currentColor;
    border-radius: 1px;

    transform: translate(-50%, -50%);
}

.series-filter-plus::before {
    width: 14px;
    height: 2px;
}

.series-filter-plus::after {
    width: 2px;
    height: 14px;
}

.series-add-filter {
    position: relative;
}

.series-filter-popover {
    width: min(280px, calc(100vw - 32px));
    height: 0;
    max-height: min(352px, calc(100vh - 32px));

    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    z-index: 40;

    color: var(--white);
    background-color: var(--background-primary);
    border: 1px solid var(--white);
    border-radius: var(--icon-background-radius-medium);

    overflow: hidden;

    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;

    transition:
        height 0.25s ease,
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0s linear 0.2s;
}

.series-filter-popover.open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;

    transition-delay: 0s;
}

.series-filter-popover-content {
    height: 100%;

    overflow-x: hidden;
    overflow-y: hidden;

    border-radius: inherit;
    scrollbar-color: var(--gold) var(--background-dark);
    scrollbar-width: thin;
}

.series-filter-popover-content.scrollable {
    overflow-y: scroll;
}

.series-filter-popover-content::-webkit-scrollbar {
    width: 8px;
}

.series-filter-popover-content::-webkit-scrollbar-track {
    background-color: var(--background-dark);
}

.series-filter-popover-content::-webkit-scrollbar-thumb {
    background-color: var(--gold);
    border: 2px solid var(--background-dark);
    border-radius: 999px;
}

.series-filter-category,
.series-filter-back,
.series-filter-option {
    width: 100%;
    min-height: 52px;
    padding: 10px 14px;

    display: flex;
    align-items: center;
    gap: 10px;

    color: var(--gold);
    background: none;
    border: 0;

    font: inherit;
    font-size: var(--text-normal);
    font-weight: 700;
    text-align: left;

    cursor: pointer;

    transition: background-color 0.2s ease;
}

.series-filter-category:hover,
.series-filter-category:focus-visible,
.series-filter-back:hover,
.series-filter-back:focus-visible,
.series-filter-option:hover,
.series-filter-option:focus-visible {
    background-color: var(--background-light);
    outline: none;
}

.series-filter-category + .series-filter-category,
.series-filter-option + .series-filter-option,
.series-filter-back + .series-filter-option,
.series-filter-back + .series-filter-no-results {
    border-top: 1px solid var(--separator);
}

.series-filter-back {
    color: var(--white);

    font-size: var(--text-paragraph);
    font-weight: 400;
}

.series-filter-chevron {
    width: 9px;
    height: 9px;
    margin-right: 4px;
    margin-left: auto;

    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;

    transform: rotate(45deg);
}

.series-filter-chevron.left {
    margin-left: 4px;
    margin-right: 2px;
    transform: rotate(-135deg);
}

.series-filter-category .series-filter-chevron {
    color: var(--white);
}

.series-filter-option-label {
    min-width: 0;
    flex: 1;

    display: flex;
    align-items: center;
    gap: 7px;
}

.series-filter-option-name.power-faithful {
    color: var(--brand-red);
}

.series-filter-option-name.power-traitor {
    color: var(--brand-orange);
}

.series-filter-option-name.twist {
    color: var(--gold);
}

.series-filter-option-icon,
.series-filter-host-icon,
.series-filter-player-head {
    width: var(--image-icon-size-small);
    height: var(--image-icon-size-small);

    flex: 0 0 var(--image-icon-size-small);

    object-fit: contain;
}

.series-filter-host-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);
    background-color: color-mix(in srgb, currentColor 10%, transparent);
    border-radius: var(--icon-background-radius-small);
    padding: 3px;
}

.series-filter-host-icon svg {
    width: 100%;
    height: 100%;

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.series-filter-player-head {
    image-rendering: pixelated;
}

.series-filter-check {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;

    color: var(--white);

    opacity: 0;
}

.series-filter-check::before {
    content: "";

    width: 7px;
    height: 12px;

    display: block;
    margin: 2px auto 0;

    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;

    transform: rotate(45deg);
}

.series-filter-option.selected .series-filter-check {
    opacity: 1;
}

.series-filter-option.selected {
    background-color: var(--background-light);
}

.series-filter-no-results {
    min-height: 62px;
    margin: 0;
    padding: 10px 14px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--white);

    font-size: var(--text-paragraph);
}

.series-selected-filter .series-filter-option-name,
.series-selected-filter .series-filter-option-icon,
.series-selected-filter .series-filter-host-icon,
.series-selected-filter .series-filter-player-head {
    pointer-events: none;
}

.series-selected-filter-remove {
    width: 14px;
    height: 14px;

    position: relative;
    flex: 0 0 14px;

    pointer-events: none;
}

.series-filter-summary {
    width: min(90%, 1600px);
    margin: -14px auto 24px;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.6;
}


/* Series cards */

.series-grid {
    width: min(90%, 1600px);
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 24px;

    text-align: left;
}

.series-card[hidden] {
    display: none;
}

.series-card {
    min-width: 0;

    display: flex;
    flex-direction: column;

    color: inherit;
    background-color: var(--background-light);

    border: 1px solid var(--gold);
    border-radius: 10px;

    text-decoration: none;

    overflow: hidden;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.series-card:hover {
    border-color: var(--white);

    transform: scale(1.025);

    box-shadow:
        0 0 8px var(--glow-white-inner),
        0 0 16px var(--glow-white-outer);
}

.series-card-banner {
    width: 100%;
    /* Three quarters of the height of a 16:9 frame. */
    aspect-ratio: 64 / 27;

    background-color: var(--background-dark);

    overflow: hidden;
}

.series-card-image {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}

.series-card-content {
    padding: 18px;

    display: flex;
    flex: 1;
    flex-direction: column;
}

.series-card-date {
    margin: 0 0 7px;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.4;
}

.series-card h2 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-subheading);
}

.series-card-meta {
    margin-top: 12px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 16px;
}

.series-host {
    min-width: 0;

    display: flex;
    align-items: center;

    gap: 10px;

    color: var(--gold);

    font-size: var(--text-normal);
    font-weight: 700;
}

.series-host-icon {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);

    flex: 0 0 var(--icon-background-size-medium);

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);

    background-color: color-mix(in srgb,
            var(--gold) 10%,
            transparent);

    border-radius: var(--icon-background-radius-medium);
}

.series-host-icon svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.series-read-more {
    flex-shrink: 0;

    display: inline-flex;
    align-items: center;
    gap: 5px;

    color: var(--white);

    font-size: var(--text-paragraph);
    white-space: nowrap;
}

.series-read-more-text {
    text-decoration: underline;
}

.series-read-more-arrow {
    font-size: 1.1em;
    font-weight: 700;
    line-height: 1;
}


/* =========================================================
   SERIES DETAIL
   ========================================================= */

.series-detail {
    width: 100%;
    max-width: 1600px;

    margin: 0 auto;
    padding: 55px 5% 30px;
}


/* Series detail header */

.series-detail-header {
    margin-bottom: 34px;
    padding: 26px 0;

    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.75fr);
    align-items: center;

    gap: 36px;
}

.series-detail-close {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);

    position: absolute;
    top: 16px;
    right: 0;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);
    background-color: var(--background-light);

    border-radius: var(--icon-background-radius-medium);

    text-decoration: none;

    transition:
        color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

.series-detail-close:hover {
    color: var(--white);
    transform: scale(1.08);
}

.series-detail-close svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);

    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.series-detail-banner {
    width: 100%;
    aspect-ratio: 64 / 27;

    background-color: var(--background-dark);

    border: 1px solid var(--gold);
    border-radius: 10px;

    overflow: hidden;
}

.series-detail-banner-image {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;
}

.series-detail-heading {
    min-width: 0;
    padding-right: 36px;
}

.series-detail-date {
    margin: 0 0 8px;

    color: var(--white);

    font-size: var(--text-paragraph);
}

.series-detail-heading h1 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-heading);
    line-height: 1.15;
}

.series-detail-host {
    margin-top: 12px;

    display: flex;
    align-items: center;

    gap: 10px;

    color: var(--gold);

    font-size: var(--text-normal);
    font-weight: 700;
}


/* =========================================================
   SERIES DETAIL PANELS
   ========================================================= */

.series-detail-overview {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);

    align-items: stretch;
    gap: 20px;
}

.series-detail-section {
    min-width: 0;
    margin-top: 20px;
}

.series-detail-overview .series-detail-section {
    margin-top: 0;
}

.series-detail-panel {
    padding: 20px;

    background-color: var(--background-primary);

    border: 1px solid var(--gold);
    border-radius: 12px;

    overflow: hidden;
}

.series-detail-section-heading {
    min-height: 44px;
    margin-bottom: 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 10px;
}

.series-detail-section-heading h2 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-subheading);
}

.series-detail-section-icon {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);

    flex: 0 0 var(--icon-background-size-medium);

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);

    background-color: color-mix(in srgb,
            var(--gold) 10%,
            transparent);

    border-radius: var(--icon-background-radius-medium);
}

.series-detail-section-icon svg {
    width: var(--svg-icon-size-medium);
    height: var(--svg-icon-size-medium);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.series-content-section .series-detail-section-icon svg path:first-child {
    fill: none;
}

.series-detail-section-body {
    min-width: 0;
}

.series-empty-message {
    margin: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.6;

    text-align: center;

    overflow-wrap: anywhere;
}


/* =========================================================
   SERIES TABLES
   ========================================================= */

.series-table-scroll,
.series-content-scroll {
    width: 100%;
    max-width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    scrollbar-width: thin;
    scrollbar-color: var(--gold) var(--background-dark);
}

.series-table-scroll {
    position: relative;

    isolation: isolate;

    border-right: 1px solid var(--separator);
    border-left: 1px solid var(--separator);
}

.series-table-scroll::-webkit-scrollbar,
.series-content-scroll::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.series-table-scroll::-webkit-scrollbar-track,
.series-content-scroll::-webkit-scrollbar-track {
    background: var(--background-dark);
}

.series-table-scroll::-webkit-scrollbar-thumb,
.series-content-scroll::-webkit-scrollbar-thumb {
    background: var(--gold);
    border-radius: 999px;
}

.series-players-table,
.series-voting-table,
.series-finale-table {
    width: 100%;
    min-width: 100%;

    border-collapse: separate;
    border-spacing: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
}

.series-players-table th,
.series-players-table td,
.series-voting-table th,
.series-voting-table td,
.series-finale-table th,
.series-finale-table td {
    padding: 10px 12px;

    border-right: 1px solid var(--separator);
    border-bottom: 1px solid var(--separator);

    text-align: center;
    vertical-align: middle;
}

.series-players-table tr>*:first-child,
.series-voting-table tr>*:first-child,
.series-finale-table tr>*:first-child {
    border-left: 0;
}

.series-players-table tr>*:last-child,
.series-voting-table tr>*:last-child,
.series-finale-table tr>*:last-child {
    border-right: 0;
}

.series-players-table thead tr:first-child>*,
.series-voting-table thead tr:first-child>*,
.series-finale-table thead tr:first-child>* {
    border-top: 1px solid var(--separator);
}

.series-players-table thead th,
.series-voting-table thead th,
.series-finale-table thead th {
    color: var(--gold);
    background-color: var(--background-light);

    font-weight: 700;
}

.series-players-table tbody th,
.series-voting-table tbody th,
.series-finale-table tbody th {
    color: var(--gold);

    font-weight: 700;
}


/* Player references inside tables */

.series-table-player {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    line-height: 1;
    white-space: nowrap;
}

.series-table-head {
    width: var(--series-head-size-medium);
    height: var(--series-head-size-medium);

    flex: 0 0 var(--series-head-size-medium);

    display: block;

    image-rendering: pixelated;
}


/* Players table */

.series-players-table {
    min-width: 600px;

    table-layout: fixed;
}

.series-players-table th,
.series-players-table td {
    width: 33.333%;
}

.series-players-table tbody th {
    text-align: center;
}

.series-player-alignment-cell {
    text-align: center;
}

.series-player-alignment-cell .series-table-alignment {
    margin: 0 auto;
}

.series-player-result {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 2px;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.25;
}

.series-player-result strong,
.series-player-result-when {
    font-size: var(--text-paragraph);
}

.series-player-result-murdered,
.series-player-result-banished {
    margin: -10px -12px;
    padding: 10px 12px;

    min-height: calc(100% + 20px);

    background-color: var(--background-dark);

    font-style: italic;
}

.series-player-result-murdered strong {
    color: var(--brand-orange);
}

.series-player-result-banished strong {
    color: var(--brand-red);
}

.series-player-result-murdered .series-player-result-when,
.series-player-result-banished .series-player-result-when {
    color: var(--white);
}

.series-player-result-winner strong {
    color: var(--gold);
}

.series-player-result-winner .series-player-result-when {
    color: var(--white);
}


/* =========================================================
   GAME LOG
   ========================================================= */

.series-game-log-section .series-detail-section-body {
    max-width: 100%;
}

.series-log-day {
    padding: 22px 0;
}

.series-log-day-new-day {
    border-top: 1px solid var(--separator);
}

.series-log-day:first-child {
    padding-top: 0;
}

.series-log-day:last-child {
    padding-bottom: 0;
}

.series-log-day h3 {
    margin: 0 0 14px;

    color: var(--gold);

    font-size: var(--text-normal);
}

.series-log-events {
    display: flex;
    flex-direction: column;

    gap: 10px;
}

.series-log-events p {
    margin: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.65;
}

.series-player-reference {
    display: inline-flex;
    align-items: center;

    gap: 5px;

    vertical-align: middle;
}

.series-inline-head {
    width: var(--series-head-size);
    height: var(--series-head-size);

    flex: 0 0 var(--series-head-size);

    display: inline-block;

    image-rendering: pixelated;
}

.series-player-name {
    font-weight: 700;
}

.series-player-power {
    display: inline-flex;
    align-items: center;
}

.series-inline-power,
.series-inline-alignment,
.series-inline-twist {
    display: inline;

    font-weight: 700;
}

.series-inline-bound-tail {
    display: inline-flex;
    align-items: center;
    gap: 4px;

    white-space: nowrap;
    vertical-align: middle;
}

.series-inline-punctuation {
    margin-left: -4px;

    color: var(--white);
    font-weight: 400;
}

.series-inline-bound-reference {
    display: inline-block;

    white-space: nowrap;
}

.series-inline-reference-punctuation {
    margin-left: 0;
}

.series-inline-power-faithful,
.series-inline-alignment-faithful {
    color: var(--brand-red);
}

.series-inline-power-traitor,
.series-inline-alignment-traitor {
    color: var(--brand-orange);
}

.series-inline-twist {
    color: var(--gold);
}

.series-inline-power img,
.series-inline-alignment img,
.series-inline-twist img {
    width: var(--series-alignment-size);
    height: var(--series-alignment-size);

    flex: 0 0 var(--series-alignment-size);

    display: inline-block;

    object-fit: contain;
}

.series-host-note {
    display: inline-flex;
    align-items: center;

    gap: 5px;

    color: var(--gold);

    font-weight: 700;
    font-style: italic;
}

.series-host-note-icon {
    width: var(--icon-background-size-small);
    height: var(--icon-background-size-small);

    flex: 0 0 var(--icon-background-size-small);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);

    background-color: color-mix(in srgb,
            var(--gold) 10%,
            transparent);

    border-radius: var(--icon-background-radius-small);
}

.series-host-note-icon svg {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   VOTING
   ========================================================= */

.series-voting-table {
    width: max-content;
    min-width: 100%;
}

.series-voting-table thead th {
    min-width: 145px;

    white-space: nowrap;
}

.series-voting-table tbody th {
    min-width: 170px;

    position: sticky;
    left: 0;
    z-index: 3;

    background-color: var(--background-primary);

    border-right: 1px solid var(--separator);

    white-space: nowrap;
}

.series-voting-player,
.series-voting-target,
.series-result-player {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    line-height: 1;
    vertical-align: middle;
    white-space: nowrap;
}

.series-voting-target-head,
.series-result-player-head {
    width: var(--series-head-size);
    height: var(--series-head-size);

    flex: 0 0 var(--series-head-size);

    display: block;

    image-rendering: pixelated;
}

.series-voting-player-head {
    width: var(--series-head-size-medium);
    height: var(--series-head-size-medium);

    flex: 0 0 var(--series-head-size-medium);

    display: block;

    image-rendering: pixelated;
}

.series-voting-player-name,
.series-voting-target-name,
.series-result-player-name {
    display: inline-flex;
    align-items: center;

    line-height: 1;
}

.series-voting-alignment-cell {
    min-width: 74px;
}

.series-vote-cell {
    min-width: 145px;
}

.series-vote-marker {
    margin-left: 5px;

    color: var(--gold);

    font-size: var(--text-paragraph);
    font-weight: 700;
}

.series-vote-no-vote {
    color: var(--white);

    font-size: var(--text-paragraph);
    font-style: italic;
}

.series-tall-no-vote {
    position: relative;
}

.series-tall-no-vote::before {
    content: "";

    width: 1px;

    position: absolute;
    top: 0;
    bottom: 0;
    left: -1px;

    background-color: var(--separator);
}

.series-vote-eliminated {
    color: var(--white);
    background-color: var(--background-dark);
}

.series-vote-status {
    min-height: 42px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 2px;

    font-size: var(--text-paragraph);
    font-style: italic;
    line-height: 1.25;
}

.series-vote-status strong,
.series-vote-status-when {
    font-size: var(--text-paragraph);
}

.series-vote-status-murdered strong {
    color: var(--brand-orange);
}

.series-vote-status-banished strong {
    color: var(--brand-red);
}

.series-vote-status-murdered .series-vote-status-when,
.series-vote-status-banished .series-vote-status-when {
    color: var(--white);
}

.series-vote-status-winner {
    font-style: normal;
}

.series-vote-status-winner strong {
    color: var(--gold);
}

.series-vote-status-winner .series-vote-status-when {
    color: var(--white);
}

/* Result player references */

.series-result-player-faithful .series-result-player-name {
    color: var(--brand-red);
}

.series-result-player-traitor .series-result-player-name {
    color: var(--brand-orange);
}

.series-result-player-alignment {
    width: var(--series-alignment-size);
    height: var(--series-alignment-size);

    flex: 0 0 var(--series-alignment-size);

    display: block;

    object-fit: contain;
}


/* =========================================================
   FINALE
   ========================================================= */

.series-finale-table {
    width: max-content;
    min-width: 100%;
}

.series-finale-table thead th {
    min-width: 145px;

    white-space: nowrap;
}

.series-finale-table tbody th {
    min-width: 170px;

    position: sticky;
    left: 0;
    z-index: 3;

    background-color: var(--background-primary);

    border-right: 1px solid var(--separator);

    white-space: nowrap;
}

.series-finale-table td {
    min-width: 145px;
}

.series-finale-player,
.series-finale-target {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    line-height: 1;
    vertical-align: middle;
    white-space: nowrap;
}

.series-finale-target-head {
    width: var(--series-head-size);
    height: var(--series-head-size);

    flex: 0 0 var(--series-head-size);

    display: block;

    image-rendering: pixelated;
}

.series-finale-player-head {
    width: var(--series-head-size-medium);
    height: var(--series-head-size-medium);

    flex: 0 0 var(--series-head-size-medium);

    display: block;

    image-rendering: pixelated;
}

.series-finale-player-name,
.series-finale-target-name {
    display: inline-flex;
    align-items: center;

    line-height: 1;
}

.series-finale-alignment-cell {
    min-width: 74px;
}

.series-finale-no-vote {
    color: var(--white);

    font-size: var(--text-paragraph);
    font-style: italic;
}

.series-finale-decision,
.series-finale-vote {
    font-size: var(--text-paragraph);
}

.series-finale-banished {
    color: var(--brand-red);
    background-color: var(--background-dark);

    font-size: var(--text-paragraph);
    font-style: italic;
}

.series-finale-status {
    display: flex;
    align-items: center;
    justify-content: center;

    font-size: var(--text-paragraph);
    line-height: 1.25;
}

.series-finale-status-banished strong {
    color: var(--brand-red);

    font-size: var(--text-paragraph);
    font-style: italic;
}

.series-finale-series-result {
    min-width: 145px;
}

.series-finale-series-result-banished {
    background-color: var(--background-dark);
}

.series-finale-series-status {
    display: flex;
    align-items: center;
    justify-content: center;

    font-size: var(--text-paragraph);
    line-height: 1.25;
}

.series-finale-series-status-winner strong {
    color: var(--gold);

    font-size: var(--text-paragraph);
    font-weight: 700;
}

.series-finale-series-status-banished {
    width: 100%;
}

.series-finale-series-status-banished strong {
    color: var(--brand-red);

    font-size: var(--text-paragraph);
    font-style: italic;
}

.series-finale-win-result {
    display: inline-flex;
    align-items: center;

    gap: 4px;
}

.series-finale-game-over-heading,
.series-finale-win-heading {
    font-weight: 700;
}


/* Alignment cells shared by tables */

.series-table-alignment {
    width: 58px;
    min-width: 58px;

    text-align: center;
}

.series-table-alignment img {
    width: var(--series-alignment-size);
    height: var(--series-alignment-size);

    display: block;
    margin: 0 auto;

    object-fit: contain;
}

.series-players-table .series-table-alignment img,
.series-voting-alignment-cell .series-table-alignment img,
.series-finale-alignment-cell .series-table-alignment img {
    width: var(--series-alignment-size-medium);
    height: var(--series-alignment-size-medium);
}


/* =========================================================
   SERIES CONTENT
   ========================================================= */

.series-content-section .series-detail-section-body {
    position: absolute;
    top: 82px;
    right: 20px;
    bottom: 20px;
    left: 20px;

    min-height: 0;
}

.series-content-section {
    position: relative;
}

.series-content-scroll {
    width: calc(100% + 8px);
    max-width: none;
    height: 100%;
    padding-right: 8px;

    overflow-x: hidden;
    overflow-y: auto;
}

.series-content-grid {
    min-width: 100%;

    display: grid;
    grid-template-columns: minmax(0, 1fr);

    gap: 16px;
}

.series-video {
    width: 100%;
}

.series-video-frame {
    width: 100%;

    aspect-ratio: 16 / 9;
}

.series-video iframe {
    width: 100%;
    height: 100%;

    display: block;

    border: 1px solid var(--separator);
    border-radius: 10px;
}

.series-video-credit {
    margin: 10px 0 0;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    color: var(--white);

    font-size: var(--text-paragraph);
}

.series-video-credit-identity {
    display: inline-flex;
    align-items: center;

    gap: 5px;

    font-weight: 700;
}

.series-video-credit-head {
    width: var(--series-head-size);
    height: var(--series-head-size);

    flex: 0 0 var(--series-head-size);

    display: block;

    image-rendering: pixelated;
}

.series-video-credit-official {
    color: var(--gold);

    font-weight: 700;
}

.series-video-credit-official-icon {
    width: var(--icon-background-size-small);
    height: var(--icon-background-size-small);

    flex: 0 0 var(--icon-background-size-small);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);

    background-color: color-mix(in srgb,
            var(--gold) 10%,
            transparent);

    border-radius: var(--icon-background-radius-small);
}

.series-video-credit-official-icon svg {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   WIKI PAGES
   ========================================================= */

.wiki-page {
    min-height: 0;

    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    align-items: stretch;
}

.wiki-sidebar {
    min-width: 0;
    min-height: 0;

    position: relative;

    background-color: var(--background-dark);
    border-right: 1px solid var(--separator);

    overflow: hidden;
}

.wiki-sidebar-inner {
    height: 100%;
    padding: 30px 18px 42px;

    position: absolute;
    inset: 0;

    overflow-y: auto;
    scrollbar-color: var(--gold) var(--background-dark);
    scrollbar-width: thin;
}

.wiki-sidebar::-webkit-scrollbar,
.wiki-sidebar-inner::-webkit-scrollbar {
    width: 8px;
}

.wiki-sidebar::-webkit-scrollbar-track,
.wiki-sidebar-inner::-webkit-scrollbar-track {
    background-color: var(--background-dark);
}

.wiki-sidebar::-webkit-scrollbar-thumb,
.wiki-sidebar-inner::-webkit-scrollbar-thumb {
    background-color: var(--gold);
    border: 2px solid var(--background-dark);
    border-radius: 999px;
}

.wiki-sidebar-group {
    --section-color: var(--gold);
}

.wiki-sidebar-group.section-how-to-play {
    --section-color: var(--how-to-play);
}

.wiki-sidebar-group.section-game-mechanics {
    --section-color: var(--game-mechanics);
}

.wiki-sidebar-group.section-locations {
    --section-color: var(--locations);
}

.wiki-sidebar-group + .wiki-sidebar-group {
    margin-top: 24px;
    padding-top: 24px;

    border-top: 1px solid var(--separator);
}

.wiki-sidebar-group-heading {
    margin: 0 8px 10px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.wiki-sidebar-group-heading h2 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-normal);
}

.wiki-sidebar-section-icon,
.wiki-sidebar-page-icon {
    width: var(--icon-background-size-small);
    height: var(--icon-background-size-small);

    flex: 0 0 var(--icon-background-size-small);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: var(--icon-background-radius-small);
}

.wiki-sidebar-section-icon {
    color: var(--section-color);
    background-color: color-mix(in srgb,
            var(--section-color) 10%,
            transparent);
}

.wiki-sidebar-page-icon {
    color: var(--section-color);
    background-color: color-mix(in srgb,
            var(--section-color) 10%,
            transparent);
}

.wiki-sidebar-section-icon svg,
.wiki-sidebar-page-icon svg {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wiki-sidebar-pages {
    margin: 0;
    padding: 0;

    list-style: none;
}

.wiki-sidebar-pages > li + li {
    margin-top: 2px;
}

.wiki-sidebar-subheadings {
    margin: 2px 0 4px;
    padding: 0;

    position: relative;

    list-style: none;
}

.wiki-sidebar-subheadings::before {
    content: "";

    width: 4px;

    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 18px;
    z-index: 1;

    background-color: var(--section-color);
    border-radius: 999px;

    pointer-events: none;
}

.wiki-page.navigation-changing .wiki-sidebar-subheadings:not([hidden]) {
    animation: wiki-sidebar-subheadings-enter 0.25s ease both;
}

@keyframes wiki-sidebar-subheadings-enter {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.wiki-sidebar-subheading {
    min-height: 32px;
    padding: 5px 8px 5px 46px;

    display: flex;
    align-items: center;

    position: relative;

    color: var(--gold);
    border-radius: var(--icon-background-radius-medium);

    font-size: var(--text-paragraph);
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;

    transition:
        color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

.wiki-sidebar-subheading:hover,
.wiki-sidebar-subheading:focus-visible {
    color: var(--white);
    background-color: var(--background-light);
    transform: translateX(3px);
}

.wiki-sidebar-link {
    min-height: 38px;
    padding: 5px 8px;

    display: flex;
    align-items: center;
    gap: 10px;

    color: var(--gold);
    border-radius: var(--icon-background-radius-medium);

    font-size: var(--text-paragraph);
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;

    transition:
        color 0.2s ease,
        background-color 0.2s ease,
        transform 0.2s ease;
}

a.wiki-sidebar-link:hover,
a.wiki-sidebar-link:focus-visible {
    color: var(--white);
    background-color: var(--background-light);
    transform: translateX(3px);
}

.wiki-sidebar-link.active {
    color: var(--white);
    background-color: var(--background-light);
}

.wiki-article {
    min-width: 0;
    padding: 56px 6% 80px;
}

.wiki-article-panel {
    --section-color: var(--gold);
}

.wiki-article-panel.section-how-to-play {
    --section-color: var(--how-to-play);
}

.wiki-article-panel.section-game-mechanics {
    --section-color: var(--game-mechanics);
}

.wiki-article-panel.section-locations {
    --section-color: var(--locations);
}

.wiki-article-title {
    max-width: 1100px;
    margin: 0 auto;

    display: flex;
    align-items: center;
    gap: 12px;
}

.wiki-article h1 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-heading);
}

.wiki-article-title-icon {
    width: var(--icon-background-size-large);
    height: var(--icon-background-size-large);

    flex: 0 0 var(--icon-background-size-large);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: var(--section-color);
    background-color: color-mix(in srgb,
            var(--section-color) 10%,
            transparent);
    border-radius: var(--icon-background-radius-large);
}

.wiki-article-title-icon svg {
    width: var(--svg-icon-size-large);
    height: var(--svg-icon-size-large);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wiki-article-content {
    max-width: 1100px;
    margin: 24px auto 0;
}

.wiki-article-content p {
    margin: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.6;
}

.wiki-article-content p + p {
    margin-top: 18px;
}

.wiki-article-content h2 {
    margin: 32px 0 10px;

    color: var(--gold);

    font-size: var(--text-subheading);
}

.wiki-article-figure {
    width: 100%;
    max-width: 900px;
    margin: 18px auto;
}

.wiki-article-figure img {
    width: 100%;
    aspect-ratio: 16 / 9;

    display: block;

    object-fit: cover;
    background-color: var(--background-dark);
    border: 1px solid var(--gold);
    border-radius: 10px;
}

.wiki-image-carousel {
    width: 100%;
    max-width: 900px;
    margin: 18px auto;
}

.wiki-image-carousel-stage {
    width: 100%;

    position: relative;
}

.wiki-image-carousel-viewport {
    width: 100%;

    overflow: hidden;
}

.wiki-image-carousel-track {
    --wiki-carousel-slide-width: clamp(220px, 72vw, 438px);

    display: flex;
    gap: 18px;
    padding-inline: calc((100% - var(--wiki-carousel-slide-width)) / 2);

    transition: transform 250ms ease;
}

.wiki-image-carousel-slide {
    width: var(--wiki-carousel-slide-width);
    margin: 0;

    flex: 0 0 var(--wiki-carousel-slide-width);

    opacity: 0.5;
    transform: scale(0.94);

    transition:
        opacity 200ms ease,
        transform 200ms ease;
}

.wiki-image-carousel-slide.active {
    opacity: 1;
    transform: scale(1);
}

.wiki-image-carousel-slide img {
    width: 100%;
    height: auto;

    display: block;

    border-radius: 10px;
}

.wiki-image-carousel-framed .wiki-image-carousel-slide img {
    aspect-ratio: 16 / 9;

    object-fit: cover;
    background-color: var(--background-dark);
    border: 1px solid var(--gold);
}

.wiki-image-carousel-fade .wiki-image-carousel-viewport {
    aspect-ratio: 16 / 9;
}

.wiki-image-carousel-fade .wiki-image-carousel-track {
    width: 100%;
    height: 100%;
    padding: 0;

    display: grid;
    gap: 0;

    transform: none !important;
    transition: none;
}

.wiki-image-carousel-fade .wiki-image-carousel-slide {
    width: 100%;
    height: 100%;

    grid-area: 1 / 1;

    opacity: 0;
    transform: none;
    pointer-events: none;

    transition: opacity 300ms ease;
}

.wiki-image-carousel-fade .wiki-image-carousel-slide.active {
    z-index: 1;

    opacity: 1;
    transform: none;
    pointer-events: auto;
}

.wiki-image-carousel-fade .wiki-image-carousel-slide.leaving {
    opacity: 1;

    transition: none;
}

.wiki-image-carousel-fade .wiki-image-carousel-slide.no-transition {
    transition: none;
}

.wiki-image-carousel-fade .wiki-image-carousel-slide img {
    width: 100%;
    height: 100%;
}

.wiki-image-carousel-indicators {
    min-height: 10px;
    margin-top: 12px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.wiki-image-carousel-indicator {
    width: 8px;
    height: 8px;
    padding: 0;

    flex: 0 0 8px;

    background-color: var(--gold);
    border: 0;
    border-radius: 50%;

    cursor: pointer;

    transition:
        background-color 150ms ease,
        transform 150ms ease;
}

.wiki-image-carousel-indicator:hover,
.wiki-image-carousel-indicator:focus-visible {
    background-color: var(--white);
    outline: none;
    transform: scale(1.25);
}

.wiki-image-carousel-indicator.active {
    background-color: var(--white);
}

.wiki-image-carousel-button {
    width: var(--icon-background-size-medium);
    height: var(--icon-background-size-medium);
    padding: 0;

    position: absolute;
    top: 50%;
    z-index: 2;

    display: grid;
    place-items: center;

    color: var(--gold);
    background-color: var(--background-light);
    border: 1px solid var(--gold);
    border-radius: var(--icon-background-radius-medium);

    cursor: pointer;
    transform: translateY(-50%);

    transition:
        color 200ms ease,
        border-color 200ms ease,
        box-shadow 200ms ease,
        transform 200ms ease;
}

.wiki-image-carousel-button.previous {
    left: 10px;
}

.wiki-image-carousel-button.next {
    right: 10px;
}

.wiki-image-carousel-button svg {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wiki-image-carousel-button:hover,
.wiki-image-carousel-button:focus-visible {
    color: var(--white);
    border-color: var(--white);
    box-shadow:
        0 0 8px var(--glow-white-inner),
        0 0 16px var(--glow-white-outer);
    outline: none;
    transform: translateY(-50%) scale(1.1);
}

.wiki-image-carousel-track.no-transition {
    transition: none;
}

.wiki-image-carousel-track.no-transition .wiki-image-carousel-slide {
    transition: none;
}

.wiki-vote-example {
    max-width: 900px;
    margin: 18px auto;
}

.wiki-chatbox {
    width: 100%;
    max-width: 900px;
    margin: 18px auto;
    padding: 18px 20px;

    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;

    background-color: var(--background-light);
    border-radius: 10px;
}

.wiki-chatbox .wiki-chatbox-line {
    margin: 0;

    display: flex;
    align-items: flex-start;
    gap: 7px;
}

.wiki-chatbox-line > span:last-child {
    min-width: 0;
}

.wiki-chatbox-speaker {
    flex: 0 0 auto;

    display: inline-flex;
    align-items: center;
    gap: 5px;

    color: var(--gold);
}

.wiki-chatbox-player-head {
    width: var(--image-icon-size-small);
    height: var(--image-icon-size-small);

    flex: 0 0 var(--image-icon-size-small);

    display: block;

    image-rendering: pixelated;
}

.wiki-chatbox-power-icon {
    width: var(--image-icon-size-small);
    height: var(--image-icon-size-small);

    flex: 0 0 var(--image-icon-size-small);

    display: block;

    object-fit: contain;
}

.wiki-chatbox-power-icon + span {
    margin-left: -5px;
}

.wiki-chatbox-speaker-traitor {
    color: var(--brand-orange);
}

.wiki-chatbox-speaker-faithful {
    color: var(--brand-red);
}

.wiki-power-heading {
    display: flex;
    align-items: center;
    gap: 6px;

    font-size: var(--text-subheading);
    font-weight: 700;
}

.wiki-power-heading.traitor {
    color: var(--brand-orange);
}

.wiki-power-heading.faithful {
    color: var(--brand-red);
}

.wiki-power-heading img {
    width: var(--image-icon-size-medium);
    height: var(--image-icon-size-medium);

    flex: 0 0 var(--image-icon-size-medium);

    display: block;

    object-fit: contain;
}

.wiki-twist-heading {
    display: flex;
    align-items: center;
    gap: 6px;

    color: var(--gold);

    font-size: var(--text-subheading);
    font-weight: 700;
}

.wiki-twist-heading img {
    width: var(--image-icon-size-medium);
    height: var(--image-icon-size-medium);

    flex: 0 0 var(--image-icon-size-medium);

    display: block;

    object-fit: contain;
}

.wiki-collapsible-section {
    margin-top: 16px;

    background-color: var(--background-primary);
    border: 1px solid var(--gold);
    border-radius: 10px;

    overflow: clip;
    scroll-margin-top: calc(var(--site-header-height, 72px) + 18px);

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.wiki-collapsible-section:hover,
.wiki-collapsible-section.open {
    border-color: var(--white);

    box-shadow:
        0 0 8px var(--glow-white-inner),
        0 0 16px var(--glow-white-outer);
}

.wiki-power-section.traitor:hover,
.wiki-power-section.traitor.open {
    border-color: var(--brand-orange);

    box-shadow:
        0 0 8px color-mix(in srgb,
            var(--brand-orange) var(--glow-colour-inner-strength),
            transparent),
        0 0 16px color-mix(in srgb,
            var(--brand-orange) var(--glow-colour-outer-strength),
            transparent);
}

.wiki-power-section.faithful:hover,
.wiki-power-section.faithful.open {
    border-color: var(--brand-red);

    box-shadow:
        0 0 8px color-mix(in srgb,
            var(--brand-red) var(--glow-dark-red-inner-strength),
            transparent),
        0 0 16px color-mix(in srgb,
            var(--brand-red) var(--glow-dark-red-outer-strength),
            transparent);
}

.wiki-collapsible-summary {
    width: 100%;
    min-height: 62px;
    padding: 14px 18px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    color: inherit;
    background-color: var(--background-primary);
    border: 0;

    font: inherit;
    text-align: left;

    cursor: pointer;
}

.wiki-collapsible-summary-content {
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.wiki-collapsible-toggle-icon {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    flex: 0 0 var(--svg-icon-size-small);

    fill: none;
    stroke: var(--gold);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        stroke 0.2s ease,
        transform 0.2s ease;
}

.wiki-collapsible-summary:hover .wiki-collapsible-toggle-icon {
    stroke: var(--white);
}

.wiki-collapsible-section.open .wiki-collapsible-toggle-icon {
    transform: rotate(180deg);
}

.wiki-collapsible-collapse {
    display: grid;
    grid-template-rows: 0fr;

    visibility: hidden;

    transition:
        grid-template-rows 0.25s ease,
        visibility 0s linear 0.25s;
}

.wiki-collapsible-section.open .wiki-collapsible-collapse {
    grid-template-rows: 1fr;

    visibility: visible;

    transition-delay: 0s;
}

.wiki-collapsible-section.measuring-expansion .wiki-collapsible-collapse,
.wiki-collapsible-section.measuring-expansion .wiki-collapsible-details,
.wiki-collapsible-section.measuring-expansion .wiki-collapsible-toggle-icon {
    transition: none !important;
}

.wiki-collapsible-details {
    min-height: 0;
    padding: 0 18px;

    background-color: var(--background-primary);
    border-top: 1px solid transparent;

    opacity: 0;
    overflow: hidden;

    transition:
        padding 0.25s ease,
        border-color 0.2s ease,
        opacity 0.15s ease;
}

.wiki-collapsible-section.open .wiki-collapsible-details {
    padding-bottom: 18px;

    border-top-color: var(--separator);

    opacity: 1;
}

.wiki-chatbox-player-reference {
    display: inline-flex;
    align-items: center;
    gap: 4px;

    color: var(--white);

    font-weight: 400;
    line-height: 1;
    vertical-align: middle;
    white-space: nowrap;
}

.wiki-chatbox-player-reference strong {
    font-weight: 400;
}

.wiki-chatbox-player-reference img {
    width: var(--image-icon-size-small);
    height: var(--image-icon-size-small);

    flex: 0 0 var(--image-icon-size-small);

    display: block;

    image-rendering: pixelated;
}

.wiki-article-content .wiki-collapsible-detail-heading {
    margin: 16px 0 4px;

    color: var(--gold);

    font-size: var(--text-normal);
}

.wiki-alignment-reference {
    display: inline;
}

.wiki-alignment-reference img {
    width: var(--image-icon-size-small);
    height: var(--image-icon-size-small);

    flex: 0 0 var(--image-icon-size-small);

    object-fit: contain;
    image-rendering: pixelated;
}

.wiki-alignment-reference.traitor,
.wiki-example-power.traitor {
    color: var(--brand-orange);
}

.wiki-alignment-reference.faithful,
.wiki-example-power.faithful {
    color: var(--brand-red);
}

.wiki-example-table-scroll {
    max-width: 900px;
    margin: 18px auto 0;

    position: relative;

    border-right: 1px solid var(--separator);
    border-left: 1px solid var(--separator);

    overflow-x: auto;
    isolation: isolate;

    scrollbar-color: var(--gold) var(--background-dark);
    scrollbar-width: thin;
}

.wiki-example-table-scroll::-webkit-scrollbar {
    height: 8px;
}

.wiki-example-table-scroll::-webkit-scrollbar-track {
    background-color: var(--background-dark);
}

.wiki-example-table-scroll::-webkit-scrollbar-thumb {
    background-color: var(--gold);
    border-radius: 999px;
}

.wiki-example-table {
    width: 100%;
    min-width: 640px;

    border-spacing: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
}

.wiki-example-table th,
.wiki-example-table td {
    width: 50%;
    padding: 10px 12px;

    border-right: 1px solid var(--separator);
    border-bottom: 1px solid var(--separator);

    text-align: center;
    vertical-align: middle;
}

.wiki-example-table tr > :last-child {
    border-right: 0;
}

.wiki-example-table thead th {
    color: var(--gold);
    background-color: var(--background-light);
    border-top: 1px solid var(--separator);

    font-weight: 700;
}

.wiki-example-player {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}

.wiki-example-power {
    display: inline;
}

.wiki-example-power-distribution,
.wiki-example-false-power {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.wiki-example-power-distribution {
    gap: 7px;
    white-space: nowrap;
}

.wiki-example-false-power {
    gap: 4px;
    color: var(--gold);
}

.wiki-example-false-power > span:not(.wiki-example-power) {
    font-weight: 700;
}

.wiki-example-player {
    color: var(--gold);
}

.wiki-host-description {
    margin-top: 18px !important;
}

.wiki-example-player img,
.wiki-example-power img {
    width: var(--image-icon-size-small);
    height: var(--image-icon-size-small);

    flex: 0 0 var(--image-icon-size-small);

    object-fit: contain;
    image-rendering: pixelated;
}

.js .wiki-page:not(.ready) .wiki-sidebar-link.active {
    color: var(--gold);
    background-color: transparent;
}

.js .wiki-page:not(.ready) .wiki-article-panel.active {
    visibility: hidden;
}

.wiki-page.navigation-changing .wiki-sidebar-link {
    transition: transform 0.2s ease;
}

.wiki-article-navigation-separator {
    max-width: 1100px;
    margin: 56px auto 22px;

    border-top: 1px solid var(--separator);
}

.wiki-article-navigation {
    max-width: 1100px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.wiki-article-navigation-link {
    --navigation-color: var(--gold);
    --navigation-glow-inner-strength: var(--glow-colour-inner-strength);
    --navigation-glow-outer-strength: var(--glow-colour-outer-strength);

    min-width: 0;
    padding: 13px 16px;

    display: flex;
    flex-direction: column;
    gap: 4px;

    color: var(--gold);
    background-color: var(--background-primary);
    border: 1px solid var(--gold);
    border-radius: 8px;

    text-decoration: none;

    transition:
        color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.wiki-article-navigation-link.section-how-to-play {
    --navigation-color: var(--how-to-play);
}

.wiki-article-navigation-link.section-game-mechanics {
    --navigation-color: var(--game-mechanics);
    --navigation-glow-inner-strength: var(--glow-purple-inner-strength);
    --navigation-glow-outer-strength: var(--glow-purple-outer-strength);
}

.wiki-article-navigation-link.section-locations {
    --navigation-color: var(--locations);
}

.wiki-article-navigation-link.next {
    grid-column: 2;
    text-align: right;
}

.wiki-article-navigation-direction {
    display: flex;
    align-items: center;
    gap: 7px;

    color: var(--white);

    font-size: var(--text-paragraph);
}

.wiki-article-navigation-link.next .wiki-article-navigation-direction {
    justify-content: flex-end;
}

.wiki-article-navigation-name {
    display: flex;
    align-items: center;
    gap: 8px;

    font-size: var(--text-normal);
    font-weight: 700;
}

.wiki-article-navigation-link.next .wiki-article-navigation-name {
    justify-content: flex-end;
}

.wiki-article-navigation-icon {
    width: var(--icon-background-size-small);
    height: var(--icon-background-size-small);

    flex: 0 0 var(--icon-background-size-small);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    color: var(--navigation-color);
    background-color: color-mix(in srgb,
            var(--navigation-color) 10%,
            transparent);
    border-radius: var(--icon-background-radius-small);
}

.wiki-article-navigation-icon svg {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wiki-article-navigation-link:hover,
.wiki-article-navigation-link:focus-visible {
    color: var(--gold);
    border-color: var(--navigation-color);
    box-shadow:
        0 0 8px color-mix(in srgb,
            var(--navigation-color) var(--navigation-glow-inner-strength),
            transparent),
        0 0 16px color-mix(in srgb,
            var(--navigation-color) var(--navigation-glow-outer-strength),
            transparent);
}

.image-placeholder {
    background-color: var(--background-dark);
}

.wiki-sidebar-backdrop {
    display: none;
}

.wiki-page + .site-footer {
    margin-top: 0;
}


/* =========================================================
   404 PAGE
   ========================================================= */

.error-page {
    min-height: 460px;
    padding: clamp(64px, 10vh, 120px) 5%;

    display: flex;
    align-items: center;
    justify-content: center;
}

.error-content {
    width: min(100%, 720px);

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
}

.error-content h1 {
    margin: 0;

    color: var(--gold);

    font-size: var(--text-title);
    line-height: 1;
}

.error-content h2 {
    margin: 10px 0 0;

    color: var(--gold);

    font-size: var(--text-heading);
    line-height: 1.15;
}

.error-separator {
    width: min(220px, 60vw);
    height: 1px;
    margin: 28px 0;

    background-color: var(--separator);
}

.error-content p {
    margin: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.6;
}

.error-home-button {
    margin-top: 24px;
    padding: 9px 14px;

    display: inline-flex;
    align-items: center;
    gap: 10px;

    color: var(--gold);
    background-color: var(--background-light);

    border: 1px solid var(--gold);
    border-radius: 10px;

    font-size: var(--text-normal);
    font-weight: 700;
    text-decoration: none;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.error-home-button:hover,
.error-home-button:focus-visible {
    border-color: var(--white);

    transform: scale(1.04);

    box-shadow:
        0 0 8px var(--glow-white-inner),
        0 0 16px var(--glow-white-outer);
}

.error-home-icon {
    width: var(--icon-background-size-small);
    height: var(--icon-background-size-small);

    flex: 0 0 var(--icon-background-size-small);

    display: inline-flex;
    align-items: center;
    justify-content: center;

    background-color: color-mix(in srgb,
            var(--gold) 10%,
            transparent);

    border-radius: var(--icon-background-radius-small);
}

.error-home-icon svg {
    width: var(--svg-icon-size-small);
    height: var(--svg-icon-size-small);

    fill: currentColor;
}

.error-page + .site-footer {
    margin-top: 0;
}


/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {
    width: 100%;
    margin-top: 40px;
    padding: 30px 5%;

    flex-shrink: 0;

    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;

    gap: 40px;

    border-top: 1px solid var(--separator);
}

.footer-brand {
    justify-self: start;
}

.footer-info {
    justify-self: end;

    display: flex;
    flex-direction: column;
    align-items: flex-end;

    gap: 5px;
}

.footer-credit,
.footer-disclaimer {
    margin: 0;

    color: var(--white);

    font-size: var(--text-paragraph);
    line-height: 1.5;

    text-align: right;
}

.site-footer a {
    color: var(--white);
    text-decoration: underline;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {
    :root {
        --text-title: 3rem;
        --text-heading: 2rem;
        --text-subheading: 1.4rem;
        --text-normal: 1.05rem;
        --text-paragraph: 0.95rem;
    }

    .site-header {
        min-height: 64px;
        padding: 8px 4%;

        gap: 14px;
    }

    .brand-icon {
        width: var(--image-icon-size-medium);
        height: var(--image-icon-size-medium);
    }

    .header-nav {
        gap: 6px;
    }

    .nav-link {
        padding: 8px 10px;
    }

    .hero-content {
        width: 86%;

        gap: clamp(22px, 5vw, 50px);
    }

    .hero-logo-image {
        width: clamp(120px, 18vw, 180px);
    }

    .card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .series-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 20px;
    }

    .series-detail {
        padding-right: 4%;
        padding-left: 4%;
    }

    .series-detail-header {
        grid-template-columns: 1fr;

        padding-top: 70px;

        gap: 24px;
    }

    .series-detail-heading {
        padding-right: 0;
    }

    /*
       Once the two overview panels no longer fit comfortably
       beside one another, Content moves beneath Players.
    */
    .series-detail-overview {
        display: grid;
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .series-players-section,
    .series-content-section {
        width: 100%;
        min-width: 0;
    }

    .series-content-section .series-detail-section-body {
        position: static;

        height: auto;
    }

    /*
       In the stacked layout, videos form a horizontal strip.
       Additional videos can be reached by scrolling sideways.
    */
    .series-content-scroll {
        --series-video-width: min(440px, 78vw);

        width: 100%;
        max-width: 100%;
        height: auto;
        padding-right: 0;

        overflow-x: auto;
        overflow-y: hidden;

        scroll-snap-type: x proximity;
    }

    .series-content-grid {
        width: max-content;
        min-width: 100%;
        padding-right: max(0px, calc((100% - var(--series-video-width)) / 2));
        padding-bottom: 8px;
        padding-left: max(0px, calc((100% - var(--series-video-width)) / 2));

        display: flex;
        align-items: flex-start;

        gap: 16px;
    }

    .series-video {
        width: var(--series-video-width);

        flex: 0 0 var(--series-video-width);

        scroll-snap-align: center;
    }

    .site-footer {
        padding: 24px 4%;

        gap: 24px;
    }
}


/* =========================================================
   COLLAPSED WIKI NAVIGATION
   ========================================================= */

@media (max-width: 900px) {
    .site-header {
        padding: 14px 4% 16px;

        grid-template-columns: 1fr auto;

        gap: 12px 16px;
    }

    .header-brand-area {
        grid-column: 1;
        grid-row: 1;

        justify-self: start;
    }

    .header-actions {
        grid-column: 2;
        grid-row: 1;

        justify-self: end;
    }

    .header-nav {
        grid-column: 1 / -1;
        grid-row: 2;

        justify-content: center;

        gap: 8px;
    }

    .wiki-menu-button {
        display: flex;
        order: -1;
    }

    .wiki-page {
        display: block;
    }

    .wiki-sidebar {
        width: min(320px, 86vw);

        position: fixed;
        top: var(--site-header-height, 72px);
        bottom: 0;
        left: 0;
        z-index: 950;

        border-right-color: var(--gold);

        overflow-y: auto;

        visibility: hidden;
        transform: translateX(-100%);

        transition:
            transform 0.25s ease,
            visibility 0s linear 0.25s;
    }

    .wiki-sidebar-inner {
        height: auto;

        position: static;
        inset: auto;

        overflow: visible;
    }

    .wiki-sidebar-backdrop {
        position: fixed;
        top: var(--site-header-height, 72px);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 900;

        display: block;

        background-color: rgba(2, 11, 22, 0.5);
        border: 0;

        visibility: hidden;
        opacity: 0;

        cursor: default;

        transition:
            opacity 0.25s ease,
            visibility 0s linear 0.25s;
    }

    .wiki-menu-open {
        overflow: hidden;
    }

    .wiki-menu-open .wiki-sidebar {
        visibility: visible;
        transform: translateX(0);

        transition-delay: 0s;
    }

    .wiki-menu-open .wiki-sidebar-backdrop {
        visibility: visible;
        opacity: 1;

        transition-delay: 0s;
    }

    .wiki-article {
        padding: 48px 5% 72px;
    }
}


/* =========================================================
   COMPACT HEADER
   ========================================================= */

@media (max-width: 760px) {
    .site-header {
        padding: 14px 4% 16px;

        grid-template-columns: 1fr auto;

        gap: 12px 16px;
    }

    .header-brand-area {
        grid-column: 1;
        grid-row: 1;

        justify-self: start;
    }

    .header-actions {
        grid-column: 2;
        grid-row: 1;

        justify-self: end;
    }

    .header-nav {
        grid-column: 1 / -1;
        grid-row: 2;

        justify-content: center;

        gap: 8px;
    }

    .hero {
        padding: 28px 6%;

        background-position: center center;
    }

    .hero-content {
        width: 100%;

        gap: clamp(16px, 5vw, 30px);
    }

    .hero-logo-image {
        width: clamp(90px, 21vw, 140px);
    }

    .series-detail-header {
        padding-top: 64px;
        padding-bottom: 20px;
    }

    .series-detail-close {
        top: 12px;
        right: 0;
    }

    .series-detail-panel {
        padding: 18px;
    }
}


/* =========================================================
   COMPACT FOOTER
   ========================================================= */

@media (max-width: 700px) {
    .series-grid {
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .site-footer {
        padding: 20px 4%;

        grid-template-columns: 1fr;
        justify-items: center;

        gap: 12px;
    }

    .footer-brand {
        justify-self: center;
    }

    .footer-info {
        justify-self: center;

        align-items: center;

        gap: 5px;
    }

    .footer-credit,
    .footer-disclaimer {
        max-width: 560px;

        text-align: center;
    }
}


/* =========================================================
   SMALL SCREENS
   ========================================================= */

@media (max-width: 560px) {
    :root {
        --text-title: 2.2rem;
        --text-heading: 1.75rem;
        --text-subheading: 1.25rem;
        --text-normal: 1rem;
        --text-paragraph: 0.9rem;

        --series-head-size: var(--image-icon-size-small);
        --series-head-size-medium: var(--image-icon-size-medium);
        --series-alignment-size: var(--image-icon-size-small);
        --series-alignment-size-medium: var(--image-icon-size-medium);
    }

    .site-brand {
        gap: 8px;
    }

    .header-nav {
        gap: 5px;
    }

    .nav-link {
        padding: 7px 8px;

        gap: 5px;
    }

    .search-button,
    .website-button {
        width: var(--icon-background-size-medium);
        height: var(--icon-background-size-medium);
    }

    .search-popover {
        width: min(280px, calc(100vw - 110px));
    }

    .hero {
        padding: 24px 5%;
    }

    .hero-content {
        gap: 14px;
    }

    .hero-logo-image {
        width: clamp(75px, 22vw, 110px);
    }

    .discover {
        padding: 44px 5% 26px;
    }

    .discover+.wiki-section {
        padding-top: 12px;
    }

    .wiki-section {
        padding: 24px 5%;
    }

    .section-heading {
        margin-bottom: 22px;
    }

    .series-history {
        padding: 44px 0 24px;
    }

    .series-controls {
        margin: 20px 0 26px;
    }

    .series-detail {
        padding: 44px 4% 24px;
    }

    .series-detail-header {
        margin-bottom: 24px;
        padding-top: 62px;
        padding-bottom: 16px;

        gap: 18px;
    }

    .series-detail-heading {
        padding-right: 0;
    }

    .series-detail-section {
        margin-top: 16px;
    }

    .series-detail-panel {
        padding: 16px;
    }

    .series-detail-section-heading {
        margin-bottom: 16px;
    }

    .series-detail-section-icon {
        width: var(--icon-background-size-medium);
        height: var(--icon-background-size-medium);

        flex-basis: var(--icon-background-size-medium);
    }

    .series-detail-section-icon svg {
        width: var(--svg-icon-size-medium);
        height: var(--svg-icon-size-medium);
    }

    .series-content-grid {
        gap: 14px;
    }

    .series-content-scroll {
        --series-video-width: min(390px, 82vw);
    }

    .series-table-player {
        gap: 6px;
    }

    .series-voting-table,
    .series-finale-table {
        font-size: var(--text-paragraph);
    }

    .series-voting-table th,
    .series-voting-table td,
    .series-finale-table th,
    .series-finale-table td {
        padding: 8px 9px;
    }

    .series-voting-table tbody th,
    .series-finale-table tbody th {
        min-width: 160px;
    }

    .series-vote-cell,
    .series-finale-table td,
    .series-voting-table thead th,
    .series-finale-table thead th {
        min-width: 135px;
    }

    .site-footer {
        margin-top: 30px;
        padding: 18px 4%;

        gap: 10px;
    }
}


/* =========================================================
   VERY SMALL SCREENS
   ========================================================= */

@media (max-width: 420px) {
    :root {
        --text-title: 1.7rem;
        --text-heading: 1.5rem;
        --text-subheading: 1.15rem;
        --text-normal: 0.9rem;
        --text-paragraph: 0.85rem;
    }

    .site-header {
        padding: 12px 4% 14px;
    }

    .header-nav {
        gap: 2px;
    }

    .nav-link {
        padding: 6px 2px;

        gap: 4px;
    }

    .wiki-article-navigation {
        grid-template-columns: 1fr;
    }

    .wiki-article-navigation-link.next {
        grid-column: 1;
    }

    .hero {
        padding: 20px 4%;
    }

    .hero-content {
        gap: 10px;
    }

    .hero-logo-image {
        width: clamp(65px, 20vw, 82px);
    }

    .discover {
        padding: 38px 4% 22px;
    }

    .discover+.wiki-section {
        padding-top: 10px;
    }

    .wiki-section {
        padding: 20px 4%;
    }

    .section-heading {
        margin-bottom: 20px;
    }

    .card-grid {
        grid-template-columns: 1fr;
    }

    .series-history {
        padding: 38px 0 20px;
    }

    .series-controls {
        margin: 18px 0 24px;
        padding: 10px 8px;
    }

    .series-grid {
        width: 92%;
    }

    .series-controls-inner {
        flex-direction: column;
        gap: 4px;
    }

    .series-controls-separator {
        width: min(100%, 280px);
        height: 1px;
        min-height: 1px;
        align-self: center;
        margin: 4px 0;
    }

    .series-sort,
    .series-filter-button,
    .series-selected-filter {
        padding: 8px 10px;
    }

    .series-card-content {
        padding: 16px;
    }

    .series-card-meta {
        gap: 12px;
    }

    .series-host-icon {
        width: var(--icon-background-size-medium);
        height: var(--icon-background-size-medium);

        flex-basis: var(--icon-background-size-medium);
    }

    .series-detail {
        padding: 38px 3.5% 20px;
    }

    .series-detail-header {
        padding-top: 56px;
        padding-bottom: 14px;
    }

    .series-detail-close {
        width: var(--icon-background-size-medium);
        height: var(--icon-background-size-medium);

        top: 10px;
        right: 0;
    }

    .series-detail-close svg {
        width: var(--svg-icon-size-medium);
        height: var(--svg-icon-size-medium);
    }

    .series-detail-panel {
        padding: 14px;
    }

    .series-detail-section {
        margin-top: 14px;
    }

    .series-players-table th,
    .series-players-table td {
        padding: 8px;
    }

    .series-player-result-murdered,
    .series-player-result-banished {
        margin: -8px;
        padding: 8px;
    }

    .series-content-scroll {
        --series-video-width: 84vw;
    }

    .series-voting-table tbody th,
    .series-finale-table tbody th {
        min-width: 155px;
    }

    .site-footer {
        margin-top: 24px;
        padding: 16px 4%;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .nav-link,
    .wiki-menu-button,
    .search-button,
    .website-button,
    .series-detail-close,
    .wiki-sidebar-subheading,
    .wiki-sidebar-link {
        transition:
            color 0.2s ease,
            background-color 0.2s ease;
    }

    a.nav-link:hover,
    .nav-link.navigation-hover-carried,
    .js[data-header-navigation-tab="home"] .nav-link[data-header-tab="home"],
    .js[data-header-navigation-tab="series"] .nav-link[data-header-tab="series"],
    .js[data-header-navigation-tab="wiki"] .nav-link[data-header-tab="wiki"],
    .wiki-menu-button:hover,
    .wiki-menu-button:focus-visible,
    .search-button:hover,
    .website-button:hover,
    .header-search.open .search-button,
    .series-detail-close:hover,
    .wiki-sidebar-subheading:hover,
    .wiki-sidebar-subheading:focus-visible,
    a.wiki-sidebar-link:hover,
    a.wiki-sidebar-link:focus-visible {
        transform: none;
    }

    .wiki-menu-button span,
    .search-popover,
    .search-panel,
    .search-results-panel,
    .series-filter-popover,
    .wiki-page.navigation-changing .wiki-sidebar-link,
    .wiki-collapsible-toggle-icon,
    .wiki-collapsible-collapse,
    .wiki-collapsible-details,
    .wiki-image-carousel-track,
    .wiki-image-carousel-slide,
    .wiki-image-carousel-button,
    .wiki-image-carousel-indicator,
    .wiki-sidebar,
    .wiki-sidebar-backdrop {
        transition: none;
    }

    .search-popover,
    .header-search.open .search-popover {
        transform: translate(0, -21px) scaleX(1);
    }

    .series-filter-popover,
    .series-filter-popover.open {
        transform: translateY(0);
    }

    .wiki-card,
    .series-card,
    .error-home-button {
        transition:
            border-color 0.2s ease,
            box-shadow 0.2s ease;
    }

    .wiki-card:hover,
    .series-card:hover,
    .error-home-button:hover,
    .error-home-button:focus-visible {
        transform: none;
    }

    .wiki-page.navigation-changing .wiki-sidebar-subheadings:not([hidden]) {
        animation: none;
    }

    .wiki-image-carousel-slide {
        transform: none;
    }

    .wiki-image-carousel-button,
    .wiki-image-carousel-button:hover,
    .wiki-image-carousel-button:focus-visible {
        transform: translateY(-50%);
    }

    .wiki-image-carousel-indicator:hover,
    .wiki-image-carousel-indicator:focus-visible {
        transform: none;
    }

    .wiki-sidebar,
    .wiki-menu-open .wiki-sidebar {
        transform: none;
    }
}
