* {
    box-sizing: border-box;
}
html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    min-height: 100%;
}
html.with-featherlight {
    overflow: auto;
}
body {
    background: rgb(29, 28, 30);
    background-size: cover;
    color: rgba(255,255,255,0.9);
    font-family: 'Roboto Mono', monospace;
    font-weight:100;
}
@media screen and (min-width: 640px){
    body {
        font-size: 0.8em;
    }
}
@media screen and (max-width: 767px){
    .desktop-only {
        display:none!important;
    }
}
@media screen and (min-width: 768px){
    body {
        font-size: 0.75em;
    }
    .mobile-only {
        display:none!important;
    }
}
@media screen and (min-width: 960px){
    body {
        font-size: 0.85em;
    }
}
@media screen and (min-width: 1080px){
    body {
        font-size: 1em;
    }
}
main {
    position: relative;
    width: 100%;
    max-width: 2600px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    margin-bottom: 3em;
}

.page-content-wrapper {
    z-index: 99;
    padding-top: 56.25%;
    /* padding-top: 75%; */
}

/* @media screen and (min-width: 768px){ */
    /* .page-content-wrapper { */
    /* } */
/* } */

.page-content {
    width: 100%;
    background: rgb(29, 28, 30);
    padding-top: 0.5em;
}
@media screen and (min-width: 768px){
    .page-content {
        padding-top: 1em;
    }
}

.loading-spinner {
    position: fixed;
    margin: 0 auto;  
    height: 12em;
    width: 100%;
    top: 40%;
    transform: translateY(-50%);
}
.loading-spinner svg {
    height: 12em;
    width: 12em;
}
.wf-active .loading-spinner {
    display: none;
}

.header,
main,
.footer {
 opacity: 0;
 visibility: hidden;
 transition: opacity 250ms ease-out,
    visibility 250ms ease-out; 
}

.wf-active .header,
.wf-active main,
.wf-active .footer {
  opacity: 1;
  visibility: visible;
  transition: opacity 250ms ease-out,
     visibility 250ms ease-out;
}

h1,h2,p {
    margin: 0;
    margin-bottom: 0.5em;
}

h1, h2 {
    font-weight: 400;
    font-style: normal;
    line-height: 1;
}

h1 {
    font-size: 0.75em;
}
h1 span, h2 span {
    display: block;
}

@media screen and (min-width: 375px){
    h1 {
        font-size: 0.9em;
    }
}

@media screen and (min-width: 840px){
    h1 {
        font-size: 1em;
    }
}
h1 .jp {
    font-size: 5.5em;
    font-family: kan415typos-std,sans-serif;
    
}
    
h1 .en, h2 .en, .edition-title .en {
    line-height: 1.1;
    text-transform: uppercase;
    text-align: justify;
    font-family: proxima-nova-condensed, sans-serif;
    font-weight: 200;
}

h1 .en .line-1 {
    font-size: 6em;
    line-height: 1.4;
}

h1 .en .line-2 {
    font-size: 4.25em;
    line-height: 0.2;
    letter-spacing: 2px;
}

@media screen and (min-width: 1080px){
    h1 .en .line-2 {
        font-size: 4.5em;
        letter-spacing: 1.25px;
    }
}

h2 {
    display: flex;
    align-items: center;
    font-size: 2em;
    font-family: kan412typos-std, sans-serif;
}

@media screen and (min-width: 640px){
    h2 {
        font-size: 2.5em;
    }
}
@media screen and (min-width: 768px){
    h2 {
        font-size: 3em;
    }
}
p {
    font-size: 0.9em;
    line-height: 1.5;
    max-width: 36em;
}
p .jp, p.jp, .jp p {
    font-size: 1em;
    font-family: kan48typos-std, sans-serif;
}
@media screen and (max-width: 374px){
    p {
        font-size: 0.8em;
    }
    p .jp, p.jp, .jp p {
        font-size: 0.9em;
    }

}

a:link, a:visited {
    transition: all 0.2s;
    color: rgba(255,255,255,0.9);
    font-weight: 400;
    text-decoration: none;
}

a:hover, a:active {
    transition: all 0.2s;
    color: white;
    text-decoration: underline;   
}

@media screen and (max-width: 600px){
    span.bar {
        display: none;
    }
}

.icon {
    height: 1em!important;
    width: auto!important;
    margin: 0.25em; 
}
.icon.twitter {
    height: 1.25em!important;   
    margin: 0.5em;
    margin-bottom: -0.25em;
    opacity: 0.9; 
}
@media screen and (min-width: 768px){
    .icon.twitter {
        margin: 0;
    }
}

.video-container {
    position: fixed;
    /* padding-bottom: 75%; */
    padding-bottom: 56.25%;
    overflow: hidden;
    height: 0;
    max-width: 100%;
    width: 100%;
    z-index: -1;
}
/* 
@media screen and (min-width: 768px){
    .video-container {
    }
} */

.video-container iframe,
.video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
 }

footer {
    max-width: 1116px;
    margin: 0 auto;
    padding: 0.5em 1em;
    position: relative;
}
footer p {
    font-size: 0.8em;
}

footer .copyright a {
    font-weight: unset;    
}
@media screen and (max-width: 768px){
    footer .copyright a {
        text-decoration: underline;
    }
}

footer .circle-c {
    font-size: 1.2em;
}

footer .disclaimer {
    text-transform: none;
    font-size: 0.8em;
}

.container--audio-toggle {
    max-width: 1116px;
    margin: 0 auto;
    margin-top: 0.5em;
    text-align: left;
}

#video-audio-toggle {
    font-size: 0.8em;
    display: inline-flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-items: center;
    text-decoration: none;
    padding-left: 1em;
}
@media screen and (min-width: 640px){
    #video-audio-toggle {
        font-size: 1em;
    }
}

.section--grid {
    position: relative;
    display: flex;
    flex-direction: column;
    max-width: 1116px;
    margin: 0 auto;
    margin-bottom: 1em;
    padding: 0 1em;
}
@media screen and (min-width: 640px){
    .section--grid {
        margin-bottom: 2em;
        padding: 2em;
    }
}
@media screen and (min-width: 1080px){
    .section--grid {
        padding: 0.25em;
    }
}

.row {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    width: 100%;
    margin-bottom: 1.5em;
}
@media screen and (min-width: 768px){
    .row {
        margin-bottom: 2em;
    }
}

.column {
    display: flex;
    flex-direction: column; 
    justify-content: flex-start;
}

.col-1-2, .col-1-3 {
    width: 100%;
}

@media screen and (min-width: 768px){
    .col-1-2 {
        width: 50%;
    }
    .col-1-2:first-child {
        padding-right: 2em;
    }
    .col-1-2:last-child {
        padding-left: 1em;
    }

    .col-1-3 {
        width: 33%;
    }
}

.column img {
    width: 100%;
    height: auto;
}


.section--grid.grid-intro {
    text-align: left;
    margin-top: 1.95em;
}
@media screen and (min-width: 768px){
    .section--grid.grid-intro {
        margin-top: 2.95em;
    }
}

.intro-title {
    padding: 0!important; 
    margin-bottom: 1em;
    font-size: 0.7em;
}
@media screen and (min-width: 640px){
    .intro-title {
        font-size: 0.9em;
    }
}
@media screen and (min-width: 768px){
    .intro-title {
        margin: 0;
        font-size: 1em;
    }
}

.intro-statement {
    font-size: 1.125em;
    text-align: justify;
}

.intro-statement .jp {
    font-family: kan48typos-std, sans-serif;
    line-height: 1.75;
    text-indent: -0.5em;
    margin-bottom: 1em;
}

.intro-statement .specs {
    font-size: 0.75em;
    margin-top: 1em;
}
.intro-statement .specs .jp {
    font-size: 1.1em;
}

@media screen and (min-width: 640px){
    .intro-statement {
        margin-top: 1em;
    }
}

.margin-fat-y {
    margin-top: 4em;    
}
@media screen and (min-width: 640px){
    .margin-fat-y {
        margin-top: 6em;    
    }
}

.row.specs {
    margin-bottom: 1em;
}
.row.cta {
    margin-bottom: 1em;
    justify-content: flex-start;
    align-items: center;
}
.row.cta span {
    margin-right: 1em;
    display: flex;
}
.row.cta li {
    list-style: none;
}
@media screen and (min-width: 768px){
    .row.cta {
        margin-bottom: 4.25em;
        /*justify-content: space-between;*/
    }
}
.row.cta p {
    align-items: center;
}
.row.cta p a{
    line-height: 1;
}
.row.cta .icon {
    margin-bottom: -6px;
}
.row.instruction {
    margin-bottom: 1em;
}
.row.charity {
    margin-top: 0;
}
.row.charity .row > p {
    max-width: 38em;
}

.button--home {
    position: relative;
    display: flex;
}

.button--home .sxx-logo {
    transition: all 0.2s;
    opacity: 0.75;
    height: 2.75em;
    width: 2.75em;
    position: absolute;
    right: 1em;
    bottom: 1em;
}
.button--home .sxx-logo:hover {
    transition: all 0.2s;
    opacity: 0.8;
}
.container--audio-toggle .button--home .sxx-logo{
    bottom: -0.625em;    
}

.row.cta .button--home .sxx-logo {
    position: relative;
    top: unset;
    right: unset;
    bottom: unset;
    left: unset;
    margin-bottom: -6px;
    height: 2.25em;
    width: 2.25em;
    opacity: 0.85;
}
.row.cta .sxx-logo:hover {
    opacity: 0.95;
}

.row.charity > .row p {
    font-size: 1em;
    margin-bottom: 0;
}
.space-out {
    display: flex;
    justify-content: space-between;
}
.space-out span{
    margin-bottom: 0.75em;
}
@media screen and (min-width: 768px){
    .space-out span{
        margin-bottom: 0.5em;
    }
}
@media screen and (max-width: 768px){
    .space-out .sxx-logo--top {
        margin-left: 1em;
    }
    .row.cta .sxx-logo--top img.sxx-logo {
        opacity: 0.95;
        height: 2em;
        margin-bottom: -10px;
    }
}

.container--instruction .slider--gallery {
    margin-bottom: 1.25em;
}

.slider--gallery .slide {
    cursor: pointer;
}
    
@media screen and (min-width: 768px){
    .container--instruction .instruction {
        order: 0;
    }
    .container--instruction .slider--gallery {
        order: 1;
    }
}

@media screen and (max-width: 640px){
    .edition-shortcuts {
        margin-top: 2em;
    }
}
@media screen and (max-width: 768px){
    .edition-shortcuts {
        font-size: 0.8em;
        flex-direction: row;
        flex-wrap: wrap;
    }
}

.edition-link {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    margin-bottom: 0.75em;
    margin-left: 1em;
    width: 100%;
}
.edition-link .col--edition-thumb {
    position: relative;
    height: 124px;
    width: 85px;    
}

.edition-link .col--edition-thumb a {
    position: relative;
    height: 100%;
    z-index: 1;
}

.edition-link .col--edition-thumb:hover::after,
.edition-link .col--edition-thumb:focus::after {
    display: block;
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    bottom: -1px;
    right: -1px;
    background: #fff;
    z-index: 0;
}
.edition-link .edition-title {
    position: relative;
    display: flex;
    flex-direction: column;
    max-width: 19em;
    width: 100%;
}

.edition-link .edition-title .arrow {
    font-size: 0.6em;
    padding-left: 0.25em;
}

.edition-link .edition-title .type {
    line-height: 1;
}

.edition-link .edition-title .jp {
    font-size: 2em;
    font-family: kan412typos-std, sans-serif;
}
.edition-title .jp {
    white-space: nowrap;
}
.edition-link.type-c .edition-title .jp {
    font-size: 1.9em;
}

.edition-link .edition-title .en {
    font-size: 2em;
    text-align: left;
}
.edition-title .footnote {
    margin-top: 0.5em;
    font-size: 0.4em;
    max-width: 42em;
}
.edition-title .footnote .jp {
    font-family: kan48typos-std, sans-serif;
}
.edition-title .footnote .en {
    text-transform: none;
    font-family: 'Roboto Mono', monospace;
    font-size: 12px;
}

.featherlight .featherlight-content {
    background: none;
}
.featherlight .featherlight-close-icon {
    color: white;
    font-size: 1em;
    background: none;
}
@media screen and (max-width: 768px){ /* !! mobile-only*/
    .featherlight .featherlight-close-icon {
        font-size: 1.5em;
        background: rgba(0,0,0,0.8);
        padding: 0.25em;
    }
}

@media screen and (max-width: 768px){ /* !! mobile-only */
    .edition-link .edition-title {
        width: 65%
    }
    .edition-link .col--edition-thumb {
        margin-bottom: 1em;
        width: 35%;
        height: auto;
    }
}

.image-grid {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    max-width: 1132px;
}

.none-available {
    display: none;
}

.edition-title {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
}

.edition-title .jp {
    display: flex;
    align-items: center;
}

.edition-title .jp {
    text-transform: uppercase;
}

.accordion-toggle .edition-title {
    margin-bottom: 0;
}

.accordion-toggle .edition-title .footnote {
    font-size: 0.3em;
    margin-top: 0;
}
.accordion-toggle .edition-title .footnote .jp {
    margin-bottom: 0.5em;
}

.accordion-toggle .edition-title.type-c .icon {
    margin-top: 0;
    margin-bottom: 0;
}

.accordion-toggle .edition-title .en {
    text-align: left;
    font-size: 0.8em;
    max-width: 7em;
    line-height: 1;
}
@media screen and (max-width: 374px){
    .accordion-toggle {
        font-size: 0.9em;
    }
}

@media screen and (min-width: 640px){
    .accordion-toggle .edition-title .en {
        font-size: 1em;
        max-width: none;
    }
}

.grid-blood .edition-title .jp {
    font-size: 0.8em;
}
@media screen and (max-width: 640px){
    .grid-blood .edition-title .footnote {
        text-align: left;
        max-width: 21em;
    }
}
@media screen and (min-width: 640px){
    .grid-blood .edition-title .jp {
        font-size: 1em;
    }
}

.col--edition-thumb {
    margin-right: 1em;
}
@media screen and (max-width: 374px){
    .col--edition-thumb {
        margin-right: 0.5em;
    }
}
@media screen and (min-width: 640px){
    .col--edition-thumb {
        margin-right: 2em;
    }
}

.image-grid .thumbnail-container {
    position: relative;
    margin: 0.5em;
    width: 100%;
}
@media screen and (min-width: 375px){
    .image-grid .thumbnail-container {
        width: 45%;
    }
}

@media screen and (min-width: 640px){
    .image-grid .thumbnail-container {
        width: 30%;
    }
}
@media screen and (min-width: 920px){
    .image-grid .thumbnail-container {
        width: 23%;
    }
}

.image-grid .thumbnail-container .tooltip {
    display: none;
    font-size: 1.2em;
    padding-bottom: 1em;
}

.image-grid .thumbnail-container .thumbnail-overlay {
    position: absolute;
    height: 100%;
    width: 100%;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.image-grid .thumbnail-container img {
    width: 100%;
}

@media screen and (min-width: 769px){
    .image-grid .thumbnail-container .thumbnail-overlay {
        opacity: 0;
        background: rgba(0,0,0,0.3);
    }
}

.image-grid .thumbnail-container .thumbnail-overlay:hover {
    transition: all 0.2s;
    opacity: 1;
    cursor: pointer;
}



.image-grid .thumbnail-container.unavailable .thumbnail-overlay {
    opacity: 1;
    background: rgba(0,0,0,.1);
}

.image-grid .thumbnail-container.unavailable .thumbnail-overlay span {
    display: block;
    /* color: white; */
    width: 100%;
    text-transform: uppercase;
    /* font-family: kan415typos-std,sans-serif; */
    padding: 0.5em;
}

.image-grid .thumbnail-container.unavailable .thumbnail-overlay:hover {
    cursor: default;
}

.image-grid .thumbnail-container .thumbnail-overlay .hint {
    position: absolute;
    bottom: 0;
    text-align: center;
    font-size: 0.6em;
    width: 100%;
    padding: 1em 2em 2.5em;
    background: rgba(0,0,0,.5);
}
@media screen and (min-width: 640px){
    .image-grid .thumbnail-container .thumbnail-overlay .hint {
        font-size: 0.7em;
    }
}


input[name="print-code"] {
    background: rgba(0,0,0,.6);
    padding: 0.5em;
    border: none;
    outline: none;
    font-size: 1.5em;
    color: white;
    font-family: 'Roboto Mono', monospace;
    width: 3.5em;
    /* width: 50%; */
    margin: 0 auto;
    text-align: center;
    cursor: pointer;
}
input[name="print-code"]::selection {
    background-color: rgba(0,0,0,0);
    color: white;
}


/* Accordions */
.toggle-accordion-remote {
    cursor: pointer;
}
.accordion-toggle {
    cursor: pointer;
    margin-bottom: 0;
}
.accordion-content {
    display: none;
}
.accordion-content.open {
    display: block;
}
.accordion-label {
    text-align: right;
    margin-right: 1em;
    width: 100%;
    font-size: 0.7em;
    margin-top: -1.5em;
}
@media screen and (min-width: 768px){
    .accordion-label {
        position: absolute;
        top: 7em;
        right: 1em;
        margin: 0;
        width: auto;
        font-size: 0.9em;
        margin-top: ;
    }
}
.accordion-top {
    justify-content: flex-end;
}
.unavailable-toggle {
    margin-right: 1em;
    font-size: 0.7em;
}

@media screen and (min-width: 768px){
    .unavailable-toggle {
        font-size: 0.9em;
    }
}

hr {
    border: 0;
    height: 1px;
    width: 90%;
    margin-top: 2em;
    background-image: linear-gradient(to right, rgba(255,255,255, 0), rgba(255,255,255, 0.5), rgba(255,255,255, 0));
}

@media screen and (min-width: 768px){
    hr {
        margin-top: 3em;
    }
}
