:root {
    --balloon: polygon(49% 3%, 56% 15%, 66% 3%, 66% 18%, 82% 6%, 75% 18%, 92% 13%, 79% 30%, 95% 32%, 82% 43%, 95% 48%, 76% 55%, 94% 70%, 75% 70%, 79% 86%, 65% 75%, 60% 87%, 49% 74%, 34% 95%, 36% 68%, 18% 75%, 24% 60%, 4% 63%, 19% 49%, 8% 44%, 21% 38%, 7% 26%, 24% 29%, 13% 11%, 33% 21%, 29% 5%, 41% 16%);
    --star: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);

    --imageColor-inobookun_01: #59f;
    --imageColor-inokochan_01: #f59;
    --imageColor-gratingchan: #999;
    --imageColor-designcoverkun_02: #56f;
    --imageColor-designcoverchan_02: #f65;
    --imageColor-suimonchan: #5df;
    --imageColor-shockProtectorman: #fff;
    --imageColor-sekoman: #59f;
    --imageColor-toychan: #22e;
    --imageColor-android_hdzt7_7: #228;
    --imageColor-haganesan: #333;
    --imageColor-master_k: #347;

    --imageColor-submerge: #000;
    --imageColor-kakureshinobu: #893;
    --imageColor-hystericalWave: #416;
    --imageColor-todorokiBrothers: #841;
    --imageColor-gareKing: #899;
    --imageColor-darktoy: #314;
    --imageColor-akasabi: #000;
    --imageColor-kanbi: #333;
    --imageColor-masterMind: #000;
    --imageColor-drGachia: #000;
    --imageColor-reCarburante: #000;
}

body.hero {
    --mainBGColor: var(--white);
    --balloonBGColor: var(--white);
    --titleBGColor: var(--yellow);
    --mainTextColor: var(--black);
    --profileRoundColor: var(--black);
}

body.villain {
    --mainBGColor: var(--black);
    --balloonBGColor: var(--red);
    --titleBGColor: var(--red);
    --mainTextColor: var(--white);
    --profileRoundColor: var(--red);
}


/**********aside_bgm_button**********/
.aside_bgm_button {
    position: fixed;
    right: 0;
    top: 50%;
    min-width: 30px;
    min-height: 30px;
    width: 8%;
    z-index: 3;
}

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

.aside_bgm_button .disabled {
    display: none;
}

@media(max-width:997px) {
    .aside_bgm_button {
        top: 20%;
        min-width: 30px;
        min-height: 30px;
        width: 15%;
        z-index: 3;
    }
}

/**************************************************************************************
*****#CharacterIntroduction*****
**************************************************************************************/


#CharacterIntroduction {
    position: relative;
    background-size: cover;
    background-position: -300px -500px;
    min-height: calc(100vh - 40px);
    z-index: 1;
    padding-bottom: 64px;

    transition: background 500ms;
}

.villain #CharacterIntroduction {
    background-position: -300px 0px;
}

#CharacterIntroduction .container {
    padding-top: 40px;
    position: relative;
    z-index: 2;
}

@media(max-width:997px) {
    #CharacterIntroduction .container {
        margin: 0;
        padding: 40px 2% 0;
    }
}

/*********** background ***********/

#CharacterIntroduction .bg_blur {
    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;
    right: 0;

    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);

    background-repeat: repeat;
    background-image:
        radial-gradient(#00000022 25%, transparent 25%);
    background-size: 4px 4px;
    z-index: -1;
}

#CharacterIntroduction .bg_balloons {
    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
}

#CharacterIntroduction .bg_balloons .balloon {
    position: absolute;
    clip-path: var(--balloon);
    background-color: #000000;
}

#CharacterIntroduction .bg_balloons .balloon::after {
    content: "";
    position: absolute;

    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);

    width: 85%;
    height: 85%;

    clip-path: var(--balloon);
    background-color: var(--balloonBGColor);

    background-repeat: repeat;
    background-image:
        radial-gradient(#000 15%, transparent 15%),
        radial-gradient(#000 15%, transparent 15%);

    background-size: 12px 12px;
    background-position: 0 0, 6px 6px;
}

#CharacterIntroduction .bg_balloons .balloon.balloon1 {
    width: 400px;
    height: 400px;
    left: 0px;
    top: -150px;
}

#CharacterIntroduction .bg_balloons .balloon.balloon2 {
    width: 250px;
    height: 250px;
    right: 15%;
    top: -50px;
}

#CharacterIntroduction .bg_balloons .balloon.balloon3 {
    width: 500px;
    height: 500px;
    right: -100px;
    bottom: -200px;
}


/*********** title ************/

#CharacterIntroduction .content.title {
    position: relative;
    width: 100%;
    padding: 9px;
    border: 5px solid black;
    border-bottom-width: 10px;
    background-color: var(--titleBGColor);
}

#CharacterIntroduction .content.title::before,
#CharacterIntroduction .content.title::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-size: contain;
}

#CharacterIntroduction .content.title::before {
    background-image: url(../../assets/images/warpLeft.png);
    background-position: left;
}

#CharacterIntroduction .content.title::after {
    background-image: url(../../assets/images/warpRight.png);
    background-position: right;
}



#CharacterIntroduction h2 {
    font-size: 48px;
    color: var(--black);
    display: flex;
    align-items: center;
    justify-content: center;
}

#CharacterIntroduction h2::after {
    display: inline-block;
    content: attr(data);
    font-size: 12px;
    color: var(--black);
    margin: auto 6px;
}

/*main*/

#CharacterIntroduction .wrapper.characterIntroduction {
    height: auto;
    min-height: 500px;
    width: 100%;
    font-size: 12px;
    margin-top: 40px;
}

.villain #CharacterIntroduction .wrapper.characterIntroduction {
    flex-direction: row-reverse;
}

/*********** image ************/

#CharacterIntroduction .content.characterImg {
    bottom: 0px;
    width: 45%;
    height: auto;
    position: relative;
    text-align: center;
}

#CharacterIntroduction .content.characterImg img {
    display: block;
    position: absolute;

    max-height: 115%;
    height: auto;

    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
}

#CharacterIntroduction .content.characterImg img.kakureshinobu {
    max-height: 90%;
}

#CharacterIntroduction .content.characterImg img.drGachia,
#CharacterIntroduction .content.characterImg img.reCarburante,
#CharacterIntroduction .content.characterImg img.submerge {
    max-width: 120%;
}

/*********** Description ************/

#CharacterIntroduction .content.characterDescription {
    width: 55%;
    padding: 20px 30px;

    color: var(--mainTextColor);

    border: 5px solid black;
    border-bottom-width: 10px;

    background-color: var(--mainBGColor);
    background-repeat: repeat;
    background-image:
        radial-gradient(#00333311 25%, transparent 25%),
        radial-gradient(#00333311 25%, transparent 25%);
    background-size: 12px 12px;
    background-position: 0 0, 6px 6px;
}

#CharacterIntroduction .content.characterDescription img {
    width: 100%;
    height: auto;
}

#CharacterIntroduction .content.characterDescription img.desc_logo {
    height: 48px;
    margin: auto auto 16px auto;
}

#CharacterIntroduction .content.characterDescription img.desc_deco {
    margin: auto;
    padding: 16px 0;
}


#CharacterIntroduction .content.characterDescription h4.name {
    font-size: 28px;
    font-weight: 900;
}

#CharacterIntroduction .content.characterDescription h4.name::after {
    content: attr(data);
    font-size: 16px;
    display: block;
    font-family: "Dela Gothic One";
}

#CharacterIntroduction .content.characterDescription p.description {
    padding: 16px 32px;
    font-size: 13px;
}

#CharacterIntroduction .content.characterDescription .profile .wrapper {
    align-items: center;
    text-align: center;
    justify-content: space-between;
}

#CharacterIntroduction .content.characterDescription .profile .circle {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    color: white;
    text-align: center;
    display: flex;
    align-items: center;
    background: var(--profileRoundColor);
}

#CharacterIntroduction .content.characterDescription .profile .circle span {
    font-size: 16px;
    margin: auto;
}

#CharacterIntroduction .content.characterDescription .profile table {
    width: 80%;
    text-align: left;
}

#CharacterIntroduction .content.characterDescription .profile td:first-child {
    width: max-content;
    text-wrap: nowrap;
}

/*********** characterSelect ************/


#CharacterIntroduction .content.characterSelect {
    width: 100%;
    height: auto;
    border: 5px solid black;
    border-bottom-width: 10px;
    margin-top: 40px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    text-align: center;
    align-items: center;
}

#CharacterIntroduction .content.characterSelect input[type="radio" i] {
    display: none;
}

#CharacterIntroduction .content.characterSelect label.tab {
    padding: 10px;
    height: 64px;
    text-align: center;
    font-weight: bold;
    cursor: pointer;
    pointer-events: all;
    position: relative;
}

#CharacterIntroduction .content.characterSelect label.tab:hover {
    padding: 4px;
}

#CharacterIntroduction .content.characterSelect #character_tag_heroes~.heroes.tab::after,
#CharacterIntroduction .content.characterSelect #character_tag_villains~.villains.tab::after {
    content: "";
    position: absolute;

    width: 20px;
    height: 10px;

    top: calc(100% + 5px);
    left: 50%;

    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    z-index: 1;

    transition: transform 500ms;
}

#CharacterIntroduction .content.characterSelect #character_tag_heroes~.heroes.tab::after {
    transform: translate(150%, 0);
}

#CharacterIntroduction .content.characterSelect #character_tag_villains~.villains.tab::after {
    transform: translate(-200%, 0);
}

#CharacterIntroduction .content.characterSelect #character_tag_heroes:checked~.heroes.tab::after,
#CharacterIntroduction .content.characterSelect #character_tag_villains:checked~.villains.tab::after {
    transform: translate(-50%, 0);
}

#CharacterIntroduction .content.characterSelect #character_tag_heroes:checked~.heroes.tab::after {
    background: #000;
}

#CharacterIntroduction .content.characterSelect #character_tag_villains:checked~.villains.tab::after {
    background: #F00;
}

#CharacterIntroduction .content.characterSelect label.tab img {
    margin: auto;
}

#CharacterIntroduction .content.characterSelect label.heroes {
    background-color: var(--white);

    background-repeat: repeat;
    background-image:
        radial-gradient(#00333311 25%, transparent 25%),
        radial-gradient(#00333311 25%, transparent 25%);
    background-size: 12px 12px;
    background-position: 0 0, 6px 6px;
}

#CharacterIntroduction .content.characterSelect label.villains {
    background-color: black;
    color: red;
}

#CharacterIntroduction .content.characterSelect .list {
    /* display: none; */
    visibility: hidden;
    grid-column-start: 1;
    grid-column-end: 3;
    height: 0px;
}

#CharacterIntroduction .content.characterSelect #character_tag_heroes:checked~.list.heroes,
#CharacterIntroduction .content.characterSelect #character_tag_villains:checked~.list.villains {
    /* display: block; */
    visibility: visible;
    border-top: 5px solid black;
    height: 100px;
}

#CharacterIntroduction .content.characterSelect .list .inner_content {
    display: flex;
    position: relative;
    /* justify-content: space-around; */
    align-items: center;
    height: 100%;
    z-index: 1;
}

#CharacterIntroduction .slick-list.draggable {
    margin: auto;
    width: 90%;
}

#CharacterIntroduction .slick-initialized .slick-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

#CharacterIntroduction .slick-arrow {
    position: relative;
    font-size: 0;

    width: 70px;
    height: 70px;

    margin: auto;
    background-position-y: center;
    background-size: contain;
}

#CharacterIntroduction .content.characterSelect .list .circle:hover {
    border: 5px solid transparent;
}


#CharacterIntroduction .slick-arrow.slick-prev {
    background-image: url("../assets/images/ico_arrow_l.png");
    margin-left: 16px;
}

#CharacterIntroduction .slick-arrow.slick-next {
    background-image: url("../assets/images/ico_arrow_r.png");
    margin-right: 16px;
}

@media (max-width:997px) {
    #CharacterIntroduction .slick-arrow.slick-prev {
        margin: 0;
    }

    #CharacterIntroduction .slick-arrow.slick-next {
        margin: 0;
    }
}

#CharacterIntroduction .slick-arrow::after {
    position: absolute;
    display: inline-block;
    content: "";

    top: 20px;
    bottom: 20px;

    width: auto;
    height: auto;

    border-radius: 50%;
    background: yellow;
    mix-blend-mode: multiply;
}

#CharacterIntroduction .slick-arrow.slick-prev::after {
    left: 40px;
    right: 20px;
}

#CharacterIntroduction .slick-arrow.slick-next::after {
    left: 20px;
    right: 50px;
}

#CharacterIntroduction .slick-arrow:hover::after {
    left: 20px;
    right: 20px;
    transition: left 1000ms, right 1000ms;
}

#CharacterIntroduction .content.characterSelect .list::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;

    /* ランダムな太さの先を重ねる */
    background-image:
        repeating-conic-gradient(transparent 0,
            transparent 6.5deg,
            var(--border-color) 6.5deg,
            var(--border-color) 8deg),
        repeating-conic-gradient(transparent 0,
            transparent 10deg,
            var(--border-color) 10deg,
            var(--border-color) 10deg),
        repeating-conic-gradient(transparent 0,
            transparent 2.5deg,
            var(--border-color) 2.5deg,
            var(--border-color) 4deg),
        repeating-conic-gradient(transparent 0,
            transparent 1deg,
            var(--border-color) 1deg,
            var(--border-color) 1.5deg);
    mask-image: radial-gradient(transparent 0%,
            transparent 30%,
            white 70%,
            white);
    -webkit-mask-image: radial-gradient(transparent 0%,
            transparent 30%,
            white 70%,
            white);
    z-index: 0;
}

#CharacterIntroduction .content.characterSelect .list.heroes::before {
    --border-color: #dddddd;
}

#CharacterIntroduction .content.characterSelect .list.heroes {
    position: relative;
    background-color: var(--white);
}

#CharacterIntroduction .content.characterSelect .list.list.villains::before {
    --border-color: #333333;
}

#CharacterIntroduction .content.characterSelect .list.villains {
    position: relative;
    background-color: var(--black);
}

#CharacterIntroduction .content.characterSelect .list .circle {
    position: relative;
    width: 80px;
    height: 80px;
    display: block;
    border-radius: 50%;
    text-align: center;
    align-items: center;
    cursor: pointer;
    margin: auto;
}


@media(max-width:997px) {
    #CharacterIntroduction .content.characterDescription {
        width: 100%;
        padding: 20px 2%;
    }

    #CharacterIntroduction .content.characterDescription .profile .circle {
        margin: auto;
    }

    #CharacterIntroduction h2 {
        flex-direction: column;
    }

    #CharacterIntroduction .content.characterImg {
        width: 100%;
        min-height: 500px;
    }

    #CharacterIntroduction .content.characterImg img {
        width: auto;
        height: auto;
        min-height: unset;
        max-height: 100%;
        max-width: 100% !important;
        margin: auto;
        top: 50%;
        bottom: auto;
        transform: translate(-50%, -50%);
    }
    #CharacterIntroduction .wrapper.characterIntroduction {
        height: auto;
        margin-top: 0;
    }

    #CharacterIntroduction .content.characterDescription p.description {
        padding: 16px 5%;
    }

    #CharacterIntroduction .content.characterDescription .profile table {
        width: auto;
    }

}
@media (max-width:768px) {
    #CharacterIntroduction .content.characterSelect .list .circle {
        width: 70px;
        height: 70px;
    }   
}
@media (max-width:576px) {
    #CharacterIntroduction h2 {
        font-size: 32px;
    }

    #CharacterIntroduction .content.characterSelect label.tab img {
        height: auto;
    }
    #CharacterIntroduction .content.characterSelect .list .circle {
        width: 50px;
        height: 50px;
    }   
}