/*! Spectre.css Experimentals | MIT License | github.com/picturepan2/spectre */

.accordion .accordion-item input:checked~.accordion-body {
    max-height: 200rem;
    transition: max-height 2s ease
}

.accordion .accordion-item .accordion-header {
    background: #f8f9fa;
    display: block;
    padding: 1rem 1.6rem
}

.accordion .accordion-item .accordion-body {
    margin-bottom: .8rem;
    max-height: 0;
    overflow: hidden;
    padding: .2rem .8rem;
    transition: max-height .3s ease
}

.calendar {
    border: .1rem solid #f0f1f4;
    border-radius: .2rem;
    display: block;
    min-width: 28rem;
    text-align: center
}

.calendar .calendar-nav {
    align-items: center;
    background: #f8f9fa;
    border-top-left-radius: .2rem;
    border-top-right-radius: .2rem;
    display: flex;
    display: -ms-flexbox;
    -ms-flex-align: center;
    font-size: 1.6rem;
    padding: 1rem
}

.calendar .calendar-body,
.calendar .calendar-header {
    display: flex;
    display: -ms-flexbox;
    -ms-flex-pack: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    justify-content: center;
    padding: 1rem 0
}

.calendar .calendar-body .calendar-date,
.calendar .calendar-header .calendar-date {
    -ms-flex: 0 0 14.28%;
    flex: 0 0 14.28%;
    max-width: 14.28%
}

.calendar .calendar-header {
    background: #f8f9fa;
    border-bottom: .1rem solid #f0f1f4;
    color: #acb3c2;
    font-size: 1.2rem
}

.calendar .calendar-body {
    color: #727e96
}

.calendar .calendar-date {
    border: 0;
    padding: .4rem
}

.calendar .calendar-date .date-item {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: 0 0;
    border: .1rem solid transparent;
    border-radius: 50%;
    color: #727e96;
    cursor: pointer;
    height: 2.8rem;
    line-height: 2rem;
    outline: 0;
    padding: .3rem;
    position: relative;
    text-align: center;
    text-decoration: none;
    transition: all .2s ease;
    vertical-align: middle;
    white-space: nowrap;
    width: 2.8rem
}

.calendar .calendar-date .date-item.date-today {
    border-color: #c5e2f7;
    color: #2090df
}

.calendar .calendar-date .date-item:focus {
    box-shadow: 0 0 0 .2rem rgba(32, 144, 223, .15)
}

.calendar .calendar-date .date-item:focus,
.calendar .calendar-date .date-item:hover {
    background: #e0effb;
    border-color: #c5e2f7;
    color: #2090df;
    text-decoration: none
}

.calendar .calendar-date .date-item.active,
.calendar .calendar-date .date-item:active {
    background: #1e87d2;
    border-color: #1b79bb;
    color: #fff
}

.calendar .calendar-date .date-item.badge::after {
    position: absolute;
    right: .3rem;
    top: .3rem;
    -ms-transform: translate(50%, -50%);
    transform: translate(50%, -50%)
}

.calendar .calendar-date .calendar-event:disabled,
.calendar .calendar-date .date-item:disabled,
.calendar .calendar-date.disabled .calendar-event,
.calendar .calendar-date.disabled .date-item {
    cursor: default;
    opacity: .25;
    pointer-events: none
}

.calendar .calendar-range {
    position: relative
}

.calendar .calendar-range::before {
    background: #d2e9f9;
    content: "";
    height: 2.8rem;
    left: 0;
    position: absolute;
    right: 0;
    top: 50%;
    -ms-transform: translateY(-50%);
    transform: translateY(-50%)
}

.calendar .calendar-range.range-start::before {
    left: 50%
}

.calendar .calendar-range.range-end::before {
    right: 50%
}

.calendar .calendar-range .date-item {
    color: #2090df
}

.calendar.calendar-lg .calendar-body {
    padding: 0
}

.calendar.calendar-lg .calendar-body .calendar-date {
    border-bottom: .1rem solid #f0f1f4;
    border-right: .1rem solid #f0f1f4;
    display: flex;
    display: -ms-flexbox;
    -ms-flex-direction: column;
    flex-direction: column;
    height: 11rem;
    padding: 0
}

.calendar.calendar-lg .calendar-body .calendar-date:nth-child(7n) {
    border-right: 0
}

.calendar.calendar-lg .calendar-body .calendar-date:nth-last-child(-n+7) {
    border-bottom: 0
}

.calendar.calendar-lg .date-item {
    align-self: flex-end;
    -ms-flex-item-align: end;
    height: 2.8rem;
    margin-right: .5rem;
    margin-top: .5rem
}

.calendar.calendar-lg .calendar-range::before {
    top: 1.9rem
}

.calendar.calendar-lg .calendar-range.range-start::before {
    left: auto;
    width: 1.9rem
}

.calendar.calendar-lg .calendar-range.range-end::before {
    right: 1.9rem
}

.calendar.calendar-lg .calendar-events {
    flex-grow: 1;
    -ms-flex-positive: 1;
    line-height: 1;
    overflow-y: auto;
    padding: .5rem
}

.calendar.calendar-lg .calendar-event {
    background: #d2e9f9;
    border-radius: .2rem;
    color: #2090df;
    display: block;
    font-size: 1.2rem;
    margin: .2rem auto;
    overflow: hidden;
    padding: .3rem .4rem;
    text-align: left;
    text-overflow: ellipsis;
    vertical-align: baseline;
    white-space: nowrap
}

.carousel {
    background: #f8f9fa;
    display: block;
    overflow: hidden;
    position: relative;
    width: 100%
}

.carousel .carousel-container {
    height: 100%;
    left: 0;
    position: relative
}

.carousel .carousel-container::before {
    content: "";
    display: block;
    padding-bottom: 56.25%
}

.carousel .carousel-container .carousel-item {
    animation: carousel-slideout 1s ease-in-out 1;
    height: 100%;
    left: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.carousel .carousel-container .carousel-item:hover .item-next,
.carousel .carousel-container .carousel-item:hover .item-prev {
    opacity: 1
}

.carousel .carousel-container .item-next,
.carousel .carousel-container .item-prev {
    background: rgba(231, 233, 237, .25);
    border-color: rgba(231, 233, 237, .5);
    color: #e7e9ed;
    opacity: 0;
    position: absolute;
    top: 50%;
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    transition: all .4s ease;
    z-index: 200
}

.carousel .carousel-container .item-prev {
    left: 2rem
}

.carousel .carousel-container .item-next {
    right: 2rem
}

.carousel .carousel-locator:nth-of-type(1):checked~.carousel-container .carousel-item:nth-of-type(1),
.carousel .carousel-locator:nth-of-type(2):checked~.carousel-container .carousel-item:nth-of-type(2),
.carousel .carousel-locator:nth-of-type(3):checked~.carousel-container .carousel-item:nth-of-type(3),
.carousel .carousel-locator:nth-of-type(4):checked~.carousel-container .carousel-item:nth-of-type(4) {
    animation: carousel-slidein .75s ease-in-out 1;
    opacity: 1;
    z-index: 100
}

.carousel .carousel-locator:nth-of-type(1):checked~.carousel-nav .nav-item:nth-of-type(1),
.carousel .carousel-locator:nth-of-type(2):checked~.carousel-nav .nav-item:nth-of-type(2),
.carousel .carousel-locator:nth-of-type(3):checked~.carousel-nav .nav-item:nth-of-type(3),
.carousel .carousel-locator:nth-of-type(4):checked~.carousel-nav .nav-item:nth-of-type(4) {
    color: #e7e9ed
}

.carousel .carousel-nav {
    bottom: 1rem;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    left: 50%;
    position: absolute;
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 20rem;
    z-index: 200
}

.carousel .carousel-nav .nav-item {
    color: rgba(231, 233, 237, .5);
    display: block;
    -ms-flex: 1 0 auto;
    flex: 1 0 auto;
    height: 4rem;
    margin: .4rem;
    max-width: 5rem;
    position: relative
}

.carousel .carousel-nav .nav-item::before {
    background: currentColor;
    content: "";
    display: block;
    height: .3rem;
    position: absolute;
    top: 2rem;
    width: 100%
}

@keyframes carousel-slidein {
    0% {
        transform: translateX(100%)
    }
    100% {
        transform: translateX(0)
    }
}

@keyframes carousel-slideout {
    0% {
        opacity: 1;
        transform: translateX(0)
    }
    100% {
        opacity: 1;
        transform: translateX(-50%)
    }
}

.comparison-slider {
    height: 50vh;
    overflow: hidden;
    position: relative;
    width: 100%
}

.comparison-slider .comparison-after,
.comparison-slider .comparison-before {
    height: 100%;
    left: 0;
    margin: 0;
    overflow: hidden;
    position: absolute;
    top: 0
}

.comparison-slider .comparison-after img,
.comparison-slider .comparison-before img {
    height: 100%;
    object-fit: none;
    object-position: left top;
    position: absolute;
    width: 100%;
    z-index: -1
}

.comparison-slider .comparison-before {
    width: 100%
}

.comparison-slider .comparison-before .comparison-label {
    right: 1.6rem
}

.comparison-slider .comparison-after {
    max-width: 100%;
    min-width: 0;
    z-index: 1
}

.comparison-slider .comparison-after::before {
    background: 0 0;
    content: "";
    cursor: default;
    height: 100%;
    left: 0;
    position: absolute;
    right: 1.6rem;
    top: 0;
    z-index: 1
}

.comparison-slider .comparison-after::after {
    background: currentColor;
    border-radius: 50%;
    box-shadow: 0 -.5rem, 0 .5rem;
    color: #fff;
    content: "";
    height: .3rem;
    position: absolute;
    right: .8rem;
    top: 50%;
    -ms-transform: translate(50%, -50%);
    transform: translate(50%, -50%);
    width: .3rem;
    z-index: -1
}

.comparison-slider .comparison-after .comparison-label {
    left: 1.6rem
}

.comparison-slider .comparison-resizer {
    animation: first-run 1.5s 1 ease-in-out;
    cursor: ew-resize;
    height: 1.5rem;
    left: 0;
    max-width: 100%;
    min-width: 1.6rem;
    opacity: 0;
    outline: 0;
    position: relative;
    resize: horizontal;
    top: 50%;
    -ms-transform: translateY(-50%) scaleY(30);
    transform: translateY(-50%) scaleY(30);
    width: 0
}

.comparison-slider .comparison-label {
    background: rgba(69, 77, 93, .5);
    bottom: 1.6rem;
    color: #fff;
    padding: .3rem .8rem;
    position: absolute;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none
}

@keyframes first-run {
    0% {
        width: 0
    }
    25% {
        width: 4.8rem
    }
    50% {
        width: 1.6rem
    }
    75% {
        width: 2.4rem
    }
    100% {
        width: 0
    }
}

.filter .filter-nav {
    margin: 1rem 0
}

.filter .filter-body {
    display: flex;
    display: -ms-flexbox;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap
}

.filter .filter-tag#tag-action:checked~.filter-nav .chip[for=tag-action],
.filter .filter-tag#tag-all:checked~.filter-nav .chip[for=tag-all],
.filter .filter-tag#tag-roleplaying:checked~.filter-nav .chip[for=tag-roleplaying],
.filter .filter-tag#tag-shooter:checked~.filter-nav .chip[for=tag-shooter],
.filter .filter-tag#tag-sports:checked~.filter-nav .chip[for=tag-sports] {
    background: #2090df;
    color: #fff
}

.filter .filter-tag#tag-action:checked~.filter-body .column:not([data-tag~=tag-action]),
.filter .filter-tag#tag-roleplaying:checked~.filter-body .column:not([data-tag~=tag-roleplaying]),
.filter .filter-tag#tag-shooter:checked~.filter-body .column:not([data-tag~=tag-shooter]),
.filter .filter-tag#tag-sports:checked~.filter-body .column:not([data-tag~=tag-sports]) {
    display: none
}

.meter {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: #f8f9fa;
    border: 0;
    border-radius: .2rem;
    display: block;
    height: 1.6rem;
    width: 100%
}

.meter::-webkit-meter-inner-element {
    display: block
}

.meter::-webkit-meter-bar,
.meter::-webkit-meter-even-less-good-value,
.meter::-webkit-meter-optimum-value,
.meter::-webkit-meter-suboptimum-value {
    border-radius: .2rem
}

.meter::-webkit-meter-bar {
    background: #f8f9fa
}

.meter::-webkit-meter-optimum-value {
    background: #32b643
}

.meter::-webkit-meter-suboptimum-value {
    background: #ffb700
}

.meter::-webkit-meter-even-less-good-value {
    background: #e85600
}

.meter:-moz-meter-optimum,
.meter:-moz-meter-sub-optimum,
.meter:-moz-meter-sub-sub-optimum,
.meter::-moz-meter-bar {
    border-radius: .2rem
}

.meter:-moz-meter-optimum::-moz-meter-bar {
    background: #32b643
}

.meter:-moz-meter-sub-optimum::-moz-meter-bar {
    background: #ffb700
}

.meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
    background: #e85600
}

.parallax {
    display: block;
    height: auto;
    position: relative;
    width: auto
}

.parallax .parallax-content {
    box-shadow: 0 2rem 4.2rem rgba(69, 77, 93, .3);
    height: auto;
    transform: perspective(100rem);
    transform-style: preserve-3d;
    transition: all .4s ease;
    width: 100%
}

.parallax .parallax-content::before {
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.parallax .parallax-front {
    align-items: center;
    color: #fff;
    display: flex;
    display: -ms-flexbox;
    -ms-flex-align: center;
    -ms-flex-pack: center;
    height: 100%;
    justify-content: center;
    left: 0;
    position: absolute;
    text-align: center;
    text-shadow: 0 0 3rem rgba(69, 77, 93, .95);
    top: 0;
    transform: translateZ(10rem) scale(.9);
    transition: all .4s ease;
    width: 100%;
    z-index: 1
}

.parallax .parallax-top-left {
    height: 50%;
    left: 0;
    position: absolute;
    top: 0;
    width: 50%;
    z-index: 300
}

.parallax .parallax-top-left:hover~.parallax-content {
    transform: perspective(100rem) rotateX(-3deg) rotateY(3deg)
}

.parallax .parallax-top-left:hover~.parallax-content::before {
    background: linear-gradient(135deg, rgba(255, 255, 255, .25) 0, rgba(255, 255, 255, 0) 50%)
}

.parallax .parallax-top-left:hover~.parallax-content .parallax-front {
    transform: translate3d(-.65rem, -.65rem, 10rem) scale(.9)
}

.parallax .parallax-top-right {
    height: 50%;
    position: absolute;
    right: 0;
    top: 0;
    width: 50%;
    z-index: 300
}

.parallax .parallax-top-right:hover~.parallax-content {
    transform: perspective(100rem) rotateX(-3deg) rotateY(-3deg)
}

.parallax .parallax-top-right:hover~.parallax-content::before {
    background: linear-gradient(-135deg, rgba(255, 255, 255, .25) 0, rgba(255, 255, 255, 0) 50%)
}

.parallax .parallax-top-right:hover~.parallax-content .parallax-front {
    transform: translate3d(.65rem, -.65rem, 10rem) scale(.9)
}

.parallax .parallax-bottom-left {
    bottom: 0;
    height: 50%;
    left: 0;
    position: absolute;
    width: 50%;
    z-index: 300
}

.parallax .parallax-bottom-left:hover~.parallax-content {
    transform: perspective(100rem) rotateX(3deg) rotateY(3deg)
}

.parallax .parallax-bottom-left:hover~.parallax-content::before {
    background: linear-gradient(45deg, rgba(255, 255, 255, .25) 0, rgba(255, 255, 255, 0) 50%)
}

.parallax .parallax-bottom-left:hover~.parallax-content .parallax-front {
    transform: translate3d(-.65rem, .65rem, 10rem) scale(.9)
}

.parallax .parallax-bottom-right {
    bottom: 0;
    height: 50%;
    position: absolute;
    right: 0;
    width: 50%;
    z-index: 300
}

.parallax .parallax-bottom-right:hover~.parallax-content {
    transform: perspective(100rem) rotateX(3deg) rotateY(-3deg)
}

.parallax .parallax-bottom-right:hover~.parallax-content::before {
    background: linear-gradient(-45deg, rgba(255, 255, 255, .25) 0, rgba(255, 255, 255, 0) 50%)
}

.parallax .parallax-bottom-right:hover~.parallax-content .parallax-front {
    transform: translate3d(.65rem, .65rem, 10rem) scale(.9)
}

.progress {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: #f0f1f4;
    border: 0;
    border-radius: .2rem;
    color: #2090df;
    height: .4rem;
    position: relative;
    width: 100%
}

.progress::-webkit-progress-bar {
    background: 0 0;
    border-radius: .2rem
}

.progress::-webkit-progress-value {
    background: #2090df;
    border-radius: .2rem
}

.progress::-moz-progress-bar {
    background: #2090df;
    border-radius: .2rem
}

.progress:indeterminate {
    animation: progress-indeterminate 1.5s linear infinite;
    background: #f0f1f4 linear-gradient(to right, #2090df 30%, #f0f1f4 30%) top left/150% 150% no-repeat
}

.progress:indeterminate::-moz-progress-bar {
    background: 0 0
}

@keyframes progress-indeterminate {
    0% {
        background-position: 200% 0
    }
    100% {
        background-position: -200% 0
    }
}

.slider {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: 0 0;
    display: block;
    height: 2.4rem;
    width: 100%
}

.slider:focus {
    box-shadow: 0 0 0 .2rem rgba(32, 144, 223, .15);
    outline: 0
}

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    background: #2090df;
    border: 0;
    border-radius: 50%;
    height: 1.2rem;
    margin-top: -.5rem;
    transition: transform .2s ease;
    width: 1.2rem
}

.slider::-moz-range-thumb {
    background: #2090df;
    border: 0;
    border-radius: 50%;
    height: 1.2rem;
    transition: transform .2s ease;
    width: 1.2rem
}

.slider::-ms-thumb {
    background: #2090df;
    border: 0;
    border-radius: 50%;
    height: 1.2rem;
    transition: transform .2s ease;
    width: 1.2rem
}

.slider:active::-webkit-slider-thumb {
    transform: scale(1.25)
}

.slider:active::-moz-range-thumb {
    transform: scale(1.25)
}

.slider:active::-ms-thumb {
    -ms-transform: scale(1.25);
    transform: scale(1.25)
}

.slider.disabled::-webkit-slider-thumb,
.slider:disabled::-webkit-slider-thumb {
    background: #e7e9ed;
    transform: scale(1)
}

.slider.disabled::-moz-range-thumb,
.slider:disabled::-moz-range-thumb {
    background: #e7e9ed;
    transform: scale(1)
}

.slider.disabled::-ms-thumb,
.slider:disabled::-ms-thumb {
    background: #e7e9ed;
    -ms-transform: scale(1);
    transform: scale(1)
}

.slider::-webkit-slider-runnable-track {
    background: #f0f1f4;
    border-radius: .2rem;
    height: .2rem;
    width: 100%
}

.slider::-moz-range-track {
    background: #f0f1f4;
    border-radius: .2rem;
    height: .2rem;
    width: 100%
}

.slider::-ms-track {
    background: #f0f1f4;
    border-radius: .2rem;
    height: .2rem;
    width: 100%
}

.slider::-ms-fill-lower {
    background: #2090df
}

.timeline .timeline-item {
    display: flex;
    display: -ms-flexbox;
    margin-bottom: 2.4rem;
    position: relative
}

.timeline .timeline-item::before {
    background: #f0f1f4;
    content: "";
    height: 100%;
    left: 1.1rem;
    position: absolute;
    top: 2.4rem;
    width: .2rem
}

.timeline .timeline-item .timeline-left {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto
}

.timeline .timeline-item .timeline-content {
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    padding: .2rem 0 .2rem 1.5rem
}

.timeline .timeline-item .timeline-icon {
    border-radius: 50%;
    color: #fff;
    display: block;
    height: 2.4rem;
    text-align: center;
    width: 2.4rem
}

.timeline .timeline-item .timeline-icon::before {
    border: .2rem solid #2090df;
    border-radius: 50%;
    content: "";
    display: block;
    height: .8rem;
    left: .8rem;
    position: absolute;
    top: .8rem;
    width: .8rem
}

.timeline .timeline-item .timeline-icon.icon-lg {
    background: #2090df;
    font-size: 1.6rem;
    line-height: 2rem
}

.timeline .timeline-item .timeline-icon.icon-lg::before {
    content: none
}