html {
    font-size: 16px;
    background: #160E25;
}

.load {
    position: fixed;
    inset: 0;
    background: #160E25;
    z-index: 9999;
    opacity: 1;
    display: flex;
    text-align: center;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    font-weight: bold;
    height: 100%;
    width: 100vw;
}

.load_content {
    max-width: 400px;
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
}

body {
    position: relative;
    font-family: "Zen Old Mincho", serif;
    font-weight: 400;
    font-style: normal;
    color: #8E7C40;
    /* display: none; */

    /* firefox対応 */
    scrollbar-width: 6px;
    scrollbar-color: #C39E38;
}

body::-webkit-scrollbar {
    width: 6px;
}

body::-webkit-scrollbar-track {
    background: #5B5B5B;
    border-radius: 3px;
}

body::-webkit-scrollbar-thumb {
    background-color: #C39E38;
    border-radius: 3px;
}

body::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('../img/back_texture.png');
    background-repeat: repeat;
    z-index: 2;
    opacity: 0.2;
}

body.no-scroll {
    overflow: hidden;
}

main {
    margin: 0 25px;
    position: relative;
    /* z-index: 2; */
}

h2 {
    font-family: "Lavishly Yours", cursive;
    font-weight: 400;
    font-style: normal;
    font-size: clamp(5rem, 14.5vw, 15rem);
    position: relative;
    width: fit-content;
    line-height: 1em;
    text-shadow: 0px 0px 10px #000;
}

h2 span {
    font-family: "Zen Old Mincho", serif;
    font-size: 0.1em;
    line-height: 1em;
    position: absolute;
    top: 2em;
    right: 0;
}

h2 .content_title__dec {
    margin: clamp(-10px, -2vw, -20px) auto auto auto;
    width: clamp(30px, 7vw, 100px);
    filter: drop-shadow(0px 0px 10px #000) drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.7));
}

button {
    background: none;
    border: none;
}

button img {
    display: block;
    flex-shrink: 0;
}

.show_960 {
    display: none;
}

.show_420 {
    display: none;
}

@media screen and (max-width: 960px) {
    .hide_960 {
        display: none;
    }

    .show_960 {
        display: block;
    }
}

@media screen and (max-width: 420px) {
    .show_420 {
        display: block;
    }
}

/* フッター */
footer {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    font-style: normal;
    padding: clamp(100px, 10vw, 200px) clamp(30px, 5vw, 70px) clamp(30px, 5vw, 70px) clamp(30px, 5vw, 70px);
    color: #d9d9d9;
    position: relative;
    z-index: 10;
}

#single_character footer {
    background: #000;
}

.footer__dec {
    padding: clamp(5px, 1.2vw, 15px);
    background:
        url('../img/dec__kado1.png') right 0 top 0 / clamp(20px, 8vw, 90px) auto no-repeat,
        url('../img/dec__kado2.png') left 0 top 0 / clamp(20px, 8vw, 90px) auto no-repeat,
        url('../img/dec__kado3.png') left 0 bottom 0 / clamp(20px, 8vw, 90px) auto no-repeat,
        url('../img/dec__kado4.png') right 0 bottom 0 / clamp(20px, 8vw, 90px) auto no-repeat;
}

.footer__content {
    border: 2px solid #8E7C40;
    position: relative;
    padding: 50px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    text-align: center;
    background: #000;
    font-size: clamp(0.75rem, 0.6982rem + 0.221vw, 0.875rem);
}

.footer__share p,
.footer__officalsns p {
    font-family: "Zen Old Mincho", serif;
    font-size: clamp(1.5rem, 2vw, 2.5rem);
    margin-right: 0.5em;
}

.footer__share,
.footer__officalsns {
    width: calc(50% - clamp(15px, 1.5vw, 30px));
    display: flex;
    align-items: center;
}

.footer__share {
    justify-content: flex-end;
    padding-right: clamp(30px, 3vw, 60px);
}

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

.footer__platform {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 30px;
    width: 100%;
    margin: 2rem 0;
}

.footer__platform img {
    max-height: clamp(50px, 2vw, 60px);
}

.footer__brandinfo {
    width: 100%;
    text-align: center;
}

.footer__company {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: clamp(20px, 4vw, 50px);
    margin: 2rem 0;
}

.footer__links {
    width: 100%;
    flex-wrap: wrap;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5em 1em;
}

.footer__kome {
    width: 100%;
    margin: 1em 0 1.5em 0;
}

.footer__copylight {
    width: 100%;
}

@media only screen and (max-width: 860px) {
    h2 {
        font-size: clamp(7rem, 20vw, 15rem);
    }

    .footer__share,
    .footer__officalsns {
        width: 100%;
        align-items: center;
        justify-content: center !important;
    }

    .footer__share {
        margin-right: 0;
    }
}

@media only screen and (max-width: 480px) {
    .footer__content {
        border: 1.5px solid #8E7C40;
        padding: 20px;
    }
}

/* その他 */
.respd {
    max-width: 100%;
    height: auto;
    width
    /***/
    : auto;
}

.youtube_ctrl {
    position: relative;
    width: 100%;
    aspect-ratio: 560 / 315;
    margin: 0 auto;
    cursor: pointer;
}

.youtube {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}

.slider-pagination-bullet {
    border-radius: 0;
    transform: rotate(45deg);
    background: #fff;
    opacity: 1;
    margin: 6px !important;
    filter: drop-shadow(0px 0px 5px #000) drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.7));
}

.slider-pagination-bullet-active {
    background: #C39E38;
    position: relative;
}

.slider-pagination-bullet-active::before {
    content: '';
    border: 1px solid #C39E38;
    position: absolute;
    width: calc(100% + 6px);
    height: calc(100% + 6px);
    top: -3px;
    left: -3px;
}

/* .list_disc li{
    padding-left: 1rem;
    position: relative;
}
.list_disc li:not(:last-child){
    margin-bottom: 0.5em;
}
.list_disc li::before {
    content: '';
    position: absolute;
    top: calc(0.5em + 2.5px);
    left: calc(0.5em - 2.5px);
    width: 5px;
    height: 5px;
    background: #8E7C40;
    transform: rotate(45deg);
} */

.dec__backblack {
    position: relative;
    overflow-x: clip;
}

.dec__backblack1::before,
.dec__backblack2::before,
.dec__backblack2::after,
.dec__backblack3::before {
    content: '';
    position: absolute;
    z-index: 1;
    aspect-ratio: 1/1;
    border-radius: 50%;
    background: #000;
    filter: blur(100px);
    opacity: 0.5;
}

.dec__backblack1::before {
    width: 100%;
    max-height: 110%;
    top: -25%;
    left: 40%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.dec__backblack2::before {
    width: 80%;
    top: 6%;
    right: -10%;
}

.dec__backblack2::after {
    width: 80%;
    bottom: 5%;
    left: -10%;
}

.dec__backblack3::before {
    height: 70%;
    top: 6%;
    right: -10%;
}

.slider-pagination ul {
    display: flex;
    gap: 15px;
    justify-content: center;
    position: relative;
    z-index: 11;
}

.slider-pagination li {
    background-color: #C9C7C2;
    width: 9px;
    height: 9px;
    transform: rotate(45deg);
    list-style: none;
    list-style-type: none;
    font-size: 0;
    border: none;
    outline: none;
    filter: drop-shadow(0 0 5px #000) drop-shadow(0 0 5px #000);
}

.slider-pagination li.slick-active {
    background-color: #C39E38;
    outline: 1px solid #C39E38;
    outline-offset: 2px;
}

.slider-pagination button {
    outline: none;
}

.slider-pagination button:focus {
    outline: none;
}

.back_linkarea {
    margin-top: clamp(70px, 10vw, 150px);
}

.back_link {
    font-size: clamp(14px, 3vw, 16px);
    padding: 0.5em 1em;
    position: relative;
    width: fit-content;
    right: 5px;
    bottom: 5px;
    background: #76642C;
    color: #fff;
    margin: auto;
    display: block;
    min-width: 200px;
    text-align: center;
}

.back_link::before {
    content: '';
    background: url('../img/dec__old.png');
    background-size: contain;
    position: absolute;
    aspect-ratio: 2 / 5;
    height: 100%;
    right: 99%;
    top: 0;
    z-index: 14;
    transform: scale(-1);
}

.back_link::after {
    content: '';
    background: url('../img/dec__old.png');
    background-size: contain;
    position: absolute;
    aspect-ratio: 2 / 5;
    height: 100%;
    left: 99%;
    top: 0;
    z-index: 14;
}

.single_404_content {
    position: relative;
    z-index: 10;
    text-align: center;
    font-size: clamp(1rem, 3vw, 2rem);
    padding-top: 8em;
}

@media screen and (max-width: 640px) {
    main {
        margin: 0 15px;
    }

    body::before {
        background-size: 100%;
    }
}

.mask {
    background: #000;
    mask-image: linear-gradient(#000, #000), url("../img/ink.png");
    mask-repeat: no-repeat;
    mask-size: 100% 100%, 0vw 0vw;
    mask-position: center, center;
    mask-composite: exclude;
    -webkit-mask-composite: xor;
    will-change: mask-size;
}

.hero-mask {
    position: fixed;
    inset: 0;
    z-index: 100;
    opacity: 1;
}

.reveal.scratch {
    /* mask-image: linear-gradient(#000, #000), url("../img/scratch.png"); */
    --size: 0px;

    background: transparent;

    mask-image: url("../img/scratch.png");
    -webkit-mask-image: url("../img/scratch.png");

    mask-mode: alpha;
    -webkit-mask-mode: alpha;

    mask-size: var(--size) var(--size);
    -webkit-mask-size: var(--size) var(--size);

    mask-position: center;
    -webkit-mask-position: center;

    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
}

.reveal {

    position: absolute;
    inset: 0;

    width: var(--mask-width, auto);
    height: var(--mask-height, auto);

    contain: paint;
}


/* .fadein {
    opacity: 0;
} */