@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Bona+Nova:ital,wght@0,400;0,700;1,400&display=swap');
:root {
    --swatchDark: #1f1f1f;
    --swatchMid: #f5f3f0;
    --swatchLight: #ffffff;
    --swatchAccentLight: #e95353;
    --swatchAccentMid: #c0392b;
    --swatchAccentDark: #a93226;
    --swatchGeneralText: #1a1a1a;
    --swatchDarkShade: #000000b9;
    --swatchDarkMutedShade: #3a3a3aa8;
    --swatchMidShade: #00000065;
    --swatchAccentShade: #b62e2786;
    --swatchDarkAccentShade: #4e2828b9;
    --swatchFooter: #191919;
    --swatchFooterText: #a0a0a0;
    --swatchTableAltTint: #ffffff6e;
    --swatchTableAltHover: #ffffffc5;
    --swatchThumbnailHover1: #00000070;
    --swatchThumbnailHover2: #00000050;
    --swatchLogoPrimary: #EFEFEF;
    --swatchLogoAccent: #e05252;
    --mobileDesktopBP: 1200px
}

.nav-bar {
    width: 100%;
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, .2), 0 6px 20px 0 rgba(0, 0, 0, .19);
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    overflow: hidden;
    min-height: 70px;
    max-height: 70px;
    background-color: #ffffffd8;
    backdrop-filter: blur(10px);
    text-align: center;
    align-items: center;
    justify-content: center
}

@media screen and (max-width:2000px) {
    .nav-bar {
        text-align: center;
        align-items: center;
        justify-content: center
    }
    .nav-bar-logo {
        padding: 0 20px
    }
    .d-lg-none {
        display: none !important;
    }
}

@media screen and (max-width:1200px) {
    .nav-bar {
        display: none
    }
    .nav-bar-logo {
        padding: 5px 0 10px 10px!important;
        height: 70px;
        min-height: 70px;
        max-height: 70px;
        margin-bottom: 0;
        background-color: #ffffff00!important
    }
}

.nav-bar-logo {
    padding: 0 18px;
    margin: 0;
    font-family: 'Bona Nova', serif;
    font-size: 34px;
    letter-spacing: 1px;
    overflow: hidden;
    width: auto;
    height: 70px;
    display: flex;
    align-items: center;
    background-color: #242424;
    color: #f0ece8;
    transition: background-color 0.2s
}

.nav-bar-logo:hover {
    background-color: #1a1a1a
}

.nav-bar-button-container {
    display: flex;
    flex-direction: row;
    position: relative;
    flex: 1 1 auto;
    overflow: hidden;
    width: 100%
}

.nav-bar-button {
    padding-left: 20px;
    padding-right: 10px;
    padding-top: 20px;
    font-family: 'Bona Nova', serif;
    font-size: 20px;
    text-align: center;
    height: 70px;
    width: 190px; /* Comment this out to get dynamic size if nav bar links change */
    white-space: nowrap;
    display: table-cell;
    vertical-align: middle;
    color: #3f3f3f;
    text-decoration: none;
    transition: .3s;
    flex-basis: auto;
    border-bottom: 5px solid transparent
}

.nav-bar-button:hover,
.active {
    color: var(--swatchAccentMid);
    text-decoration: none;
    border-bottom-color: var(--swatchAccentMid)
}

.nav-bar-button:focus-visible {
    outline: none;
    color: var(--swatchAccentMid);
    border-bottom-color: var(--swatchAccentMid)
}

.topnav {
    overflow: hidden;
    background-color: #000000bf;
    backdrop-filter: blur(10px);
    position: relative;
    min-height: 70px;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 3;
    box-shadow: 0 4px 8px 0 #00000033, 0 6px 20px 0 #00000030
}

.topnav #myLinks {
    display: none
}

.topnav a {
    color: #fff;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;
    display: block;
    transition: .3s
}

.topnav a.icon {
    background: #3f3f3f00;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    padding: 10px 10px 10px 10px;
    width: 70px;
    height: 70px;
    padding-top: 21px;
    padding-left: 28px
}

.topnav a:hover {
    background-color: var(--swatchAccentMid);
    color: #fff
}

.topnav a:focus-visible {
    outline: 2px solid var(--swatchLogoAccent);
    outline-offset: -2px;
    background-color: rgba(192,57,43,0.15)
}

a .active {
    background-color: #d31515;
    color: #000
}

body {
    background-color: var(--swatchLight);
}

h1 {
    font-size: 100px
}

h2 {
    font-size: 70px
}

h3 {
    font-size: 40px
}

h4 {
    font-size: 32px
}

h5 {
    font-size: 28px
}

h6 {
    font-size: 20px;
    font-weight: 700
}

p {
    font-size: 20px;
    line-height: 1.75
}

li {
    font-size: 20px;
    line-height: 1.6
}

a {
    font-size: inherit;
    text-decoration: none;
    transition: .3s
}

.landing {
    overflow: hidden;
    text-align: center
}

.s1 {
    background-color: var(--swatchLight);
    overflow: auto;
    text-align: left;
    transition: .1s ease-in-out!important;
    color: var(--swatchDark)
}

.s2 {
    background-color: var(--swatchMid);
    overflow: auto;
    text-align: left;
    transition: .1s ease-in-out!important;
    color: var(--swatchDark)
}

.s3 {
    background-color: var(--swatchDark);
    overflow: auto;
    text-align: left;
    transition: .1s ease-in-out!important;
    color: var(--swatchLight);
}

.s4 {
    background-color: var(--swatchFooter);
    overflow: auto;
    text-align: left;
    transition: .1s ease-in-out!important;
    color: var(--swatchLight)
}

.footer {
    background-color: var(--swatchFooter);
    overflow: auto;
    text-align: left;
    transition: .1s ease-in-out!important;
    color: var(--swatchLight)
}

.main-container {
    width: 1200px;
    margin: 0 auto;
    padding: 25px 0 25px 0;
    text-decoration: none;
    transition: .1s ease-in-out!important
}

@media screen and (max-width:2000px) {
    .main-container {
        width: 70%;
        margin: 0 auto;
        text-decoration: none
    }
    .hidden-desktop {
        display: none;
    }
}

@media (max-width:1200px) {
    .hidden_mobile {
        display: none;
    }
    .main-container {
        width: 90%;
    }
    .hidden-desktop {
        display: unset;
    }
}

.full-height {
    min-height: 100vh;
}

.full-width {
    width: 100%;
}

html {
    scroll-behavior: smooth;
}

.invisible {
    background-color: transparent;
    border: transparent;
}

.pin-to-top {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1
}

.centre-child {
    margin: 0 auto
}

.centre-parent {
    display: flex;
    flex-direction: column;
    justify-content: center;
    justify-self: center
}

.logoNavFontLight {
    font-family: 'Bona Nova', serif;
    font-size: var(--fontSize);
    letter-spacing: 2px;
    word-spacing: normal;
    color: var(--swatchLogoPrimary);
    font-weight: lighter;
    text-decoration: none;
    font-style: normal;
    font-variant: normal;
    margin: 0
}

.logoNavFontAccent {
    font-family: 'Bona Nova', serif;
    font-size: var(--fontSize);
    letter-spacing: 2px;
    word-spacing: normal;
    color: var(--swatchLogoAccent);
    font-weight: lighter;
    text-decoration: none;
    font-style: normal;
    font-variant: normal;
    margin: 0
}

.noBorder {
    border: hidden
}

.shade-dark {
    background-color: var(--swatchDarkShade)
}

.shade-dark-muted {
    background-color: var(--swatchDarkMutedShade)
}

.shade-mid {
    background-color: var(--swatchMidShade)
}

.shade-accent {
    background-color: var(--swatchAccentShade)
}

.shade-accent-dark {
    background-color: var(--swatchDarkAccentShade)
}

.row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    height: 100%
}

.column {
    display: flex;
    flex-direction: column;
    flex-basis: 100%;
    flex: 1
}

.header-bar {
    background-color: #1919199f;
    backdrop-filter: blur(5px);
    transition: .5s ease-in-out!important;
    z-index: 10
}

.textOnDarkAccent {
    color: var(--swatchAccentLight)
}

.footerText {
    font-family: 'Bona Nova', serif;
    font-size: 15px;
    word-spacing: normal;
    color: var(--swatchFooterText);
    text-decoration: none;
    font-style: normal;
    font-variant: normal;
    transition: .1s ease-in-out!important
}

h1,
h2,
h3,
h4,
h5,
h6,
strong {
    color: var(--swatchAccentMid)
}

input,
label,
li,
p,
span,
textarea,
ul {
    color: inherit
}

a {
    text-decoration: none!important;
    color: var(--swatchAccentMid);
    transition: .1s ease-in-out!important
}

a:hover {
    text-decoration: none!important;
    color: var(--swatchAccentDark);
    transition: .1s ease-in-out!important
}

::selection {
    background-color: var(--swatchAccentMid);
    color: var(--swatchLight)
}

ul {
    list-style: disc
}

strong {
    font-family: inherit;
    font-weight: 500
}

a,
button,
h1,
h2,
h3,
h4,
h5,
h6,
input,
label,
li,
p,
span,
sub,
sup,
textarea,
ul {
    font-family: 'Bona Nova', serif
}

.inherit-all {
    all: inherit
}

.inherit-text {
    text-align: inherit;
    color: inherit;
    text-indent: inherit;
    font: inherit;
    font-weight: inherit
}

.ignore-all {
    all: unset;
    scroll-behavior: smooth
}

.dockerhub:hover {
    background-color: #384d54!important;
    color: #0db7ed!important
}

.github:hover {
    background-color: #6e5494!important;
    color: #f5f5f5!important
}

.steam:hover {
    background-color: #2a475e!important;
    color: #66c0f4!important
}

.itchio:hover {
    background-color: #000!important;
    color: #fff!important
}

.xbox:hover {
    background-color: #107c10!important;
    color: #fff!important
}

.playstation:hover {
    background-color: #003087!important;
    color: #fff!important
}

.nintendo:hover {
    background-color: #e60012!important;
    color: #fff!important
}

.steam:active {
    background-color: #1b2838!important;
    color: #c7d5e0!important
}

.itchio:active {
    background-color: #000!important;
    color: #929292!important
}

.xbox:active {
    background-color: #0a500a!important;
    color: #fff!important
}

.playstation:active {
    background-color: #00215e!important;
    color: #fff!important
}

.nintendo:active {
    background-color: #97000d!important;
    color: #fff!important
}

.social-button {
    width: 32px;
    height: 32px;
    margin: 6px;
    filter: brightness(.7);
    transition: .2s ease-in-out!important
}

.social-button:hover {
    filter: brightness(1);
    transform: translateY(-2px)
}

.nearest-neighbour-scaling {
    image-rendering: pixelated
}

.table-container {
    width: 100%;
    height: fit-content
}

table {
    width: 100%;
    max-width: 100%;
    font-size: 20px;
    text-decoration: none;
    font-family: Ubuntu, sans-serif;
    font-weight: lighter;
    margin: 10px 0 10px 0;
    overflow: scroll
}

th {
    border-color: #80808052;
    border-bottom-width: 1px;
    font-weight: 400
}

td,
tr {
    transition: .1s ease-in-out
}

td,
th {
    padding: 10px
}

.tableAlt {
    background-color: var(--swatchTableAltTint)
}

tr:hover {
    background-color: var(--swatchTableAltHover)
}

.snowflake {
    position: absolute;
    width: 10px;
    height: 10px;
    background: linear-gradient(white, #fff);
    border-radius: 50%;
    filter: drop-shadow(0 0 10px #fff)
}

.snow-container {
    display: inline;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh
}

@media screen and (max-width:2000px) {
    td:hover {
        padding-top: 15px;
        padding-bottom: 15px
    }
}

@media (max-width:1200px) {
    .table-container {
        overflow-x: scroll
    }
    .table-container::-webkit-scrollbar {
        display: initial;
        height: 10px
    }
    td {
        white-space: nowrap
    }
    td:hover {
        padding-top: 10px;
        padding-bottom: 10px
    }
    .snow-container .snowflake {
        display: none
    }
}


/* Style the navigation menu */

.topnav {
    overflow: hidden;
    background-color: #000000bf;
    backdrop-filter: blur(10px);
    position: relative;
    min-height: 70px;
    width: 100%;
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 3;
    box-shadow: 0 4px 8px 0 #00000033, 0 6px 20px 0 #00000030;
}


/* Hide the links inside the navigation menu (except for logo/home) */

.topnav #myLinks {
    display: none;
}


/* Style navigation menu links */

.topnav a {
    color: white;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;
    display: block;
    transition: 0.3s;
}


/* Style the hamburger menu */

.topnav a.icon {
    background: #3f3f3f00;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    padding: 10px 10px 10px 10px;
    width: 70px;
    height: 70px;
    padding-top: 21px;
    padding-left: 28px;
}


/* Add a grey background color on mouse-over */

.topnav a:hover {
    background-color: #d31515;
    color: black;
}


/* Style the active link (or home/logo) */

#navLinks a .active {
    background-color: #d31515;
    color: black;
}

.button-style {
    border-radius: 5px;
    border: none;
    box-shadow: none !important;
    font-weight: lighter;
    background-color: var(--swatchMid);
    color: var(--swatchDark);
    padding: 15px 40px;
    font-size: 20px;
    text-align: center;
    margin-left: 5px;
    margin-right: 5px;
}

.button-style:hover {
    transition: 0.5 ease-in-out;
    background-color: var(--swatchAccentMid);
    color: var(--swatchLight);
}

.button-style:active {
    transition: 0.5 ease-in-out;
    background-color: var(--swatchAccentDark) !important;
    color: var(--swatchAccentLight) !important;
}

.button-style:disabled {
    transition: 0.5 ease-in-out;
    background-color: var(--swatchMid);
    color: var(--swatchDark);
}

.footer-button {
    border-radius: 5px;
    border: none;
    box-shadow: none !important;
    padding: 15px 40px;
    text-align: center;
    background-color: inherit;
    color: var(--swatchFooterText);
    transition: 0.5s ease-in-out;
}

.footer-button:hover {
    background-color: var(--swatchMid);
    color: var(--swatchDark);
}

.footer-button:active {
    background-color: var(--swatchAccentDark) !important;
    color: var(--swatchAccentLight) !important;
}

.footer-button:disabled {
    background-color: var(--swatchMid);
    color: var(--swatchDark);
}

.external-button-emphasis::before {
    content: "";
    height: 40px;
    display: inline-block;
    visibility: none;
}

.external-button-emphasis {
    background-color: var(--swatchAccentMid);
    color: #ffffff;
    padding: 15px;
    margin: 15px;
    box-shadow: 0 4px 12px 0 rgba(192,57,43,0.35);
    border-radius: 10px;
    transition: 0.3s;
}

.external-button-emphasis:hover {
    background-color: var(--swatchAccentDark);
    color: #ffffff;
    box-shadow: 0 6px 18px 0 rgba(192,57,43,0.45);
    transform: translateY(-1px)
}

.external-button-emphasis:focus-visible {
    outline: 3px solid var(--swatchAccentMid);
    outline-offset: 3px
}

@keyframes transitionIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.transition-section {
    animation: transitionIn 0.75s;
}

.sig-logo {
    width: 100%;
    text-align: center;
    opacity: 0.2;
    margin-bottom: 20px;
}

.footerText:a {
    color: #00000000;
}

.s3 h1,
.s3 h2,
.s3 h3,
.s3 h4,
.s3 h5,
.s3 h6 {
    color: var(--swatchLogoPrimary);
}

/* Skip navigation link for keyboard users */
.skip-link {
    position: absolute;
    top: -60px;
    left: 12px;
    background-color: var(--swatchAccentMid);
    color: #ffffff;
    padding: 10px 20px;
    border-radius: 0 0 8px 8px;
    font-family: 'Bona Nova', serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.5px;
    z-index: 9999;
    transition: top 0.2s ease;
    text-decoration: none !important
}

.skip-link:focus {
    top: 0
}

/* Screen reader only – visually hidden but accessible */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0
}

/* Global keyboard focus indicator */
*:focus-visible {
    outline: 3px solid var(--swatchAccentMid);
    outline-offset: 2px;
    border-radius: 2px
}

/* Footer link contrast */
.footerText a {
    color: var(--swatchLogoAccent);
    transition: color 0.2s ease
}

.footerText a:hover {
    color: #ffffff
}

.footer-spacer {
    height: 16px
}

/* Section vertical rhythm */
.s1 .main-container,
.s2 .main-container,
.s3 .main-container {
    padding: 48px 0
}

/* Pre-loader overlay */
#page-preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background-color: #1f1f1f;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 1;
    transition: opacity 0.4s ease;
}

#page-preloader.preloader-hidden {
    opacity: 0;
    pointer-events: none;
}

.preloader-logo {
    width: 140px;
    max-width: 40vw;
    margin-bottom: 36px;
}

.preloader-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid rgba(255, 255, 255, 0.15);
    border-top-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    animation: preloader-spin 0.9s linear infinite;
}

@keyframes preloader-spin {
    to {
        transform: rotate(360deg);
    }
}