:root {
    --yellow: #ffe100;
    --blue: #376ab3;
    --orange: #e75400;
    --green: #39b54a;
    --pink: #ee86a8;
    --purple: #b08bbe;
    --orangeL: #fca01e;
    --bgwhite: #ffff;
    --bggray: #f2f2f2;
    --bggrayD: #e2e2e3;
    --en: "Zen Maru Gothic";
}

body {
    margin: 0 auto;
    padding: 0;
    font-size: 16px;
    font-family: "Zen Maru Gothic", sans-serif;
    background-color: var(--bgwhite);
}

* {
    box-sizing: border-box;
}

/* eh footer */
.ehFooter {
    font-family: sans-serif;
}

.ehFooter_btm_logo {
    width: 123px;
}

figure {
    display: block;
    margin: 0;
    padding: 0;
}

.en {
    font-family: "Mochiy Pop One", sans-serif;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.flex-center {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}

.mbtm-1 {
    margin-bottom: 1em;
}

.mbtm-2 {
    margin-bottom: 2em;
}

.mbtm-3 {
    margin-bottom: 3em;
}

.orange {
    color: var(--orange);
}

.orangeL {
    color: var(--orangeL);
}

.green {
    color: var(--green);
}

.yellow {
    color: var(--yellow);
}

.blue {
    color: var(--blue);
}

.bg-orange {
    background-color: var(--orange);
}

.bg-orangeL {
    background-color: var(--orangeL);
}

.bg-yellow {
    background-color: var(--yellow);
}

.bg-blue {
    background-color: var(--blue);
}

.bg-green {
    background-color: var(--green);
}

.bg-grayD {
    background-color: var(--bggrayD);
}

.bg-gray {
    background-color: var(--bggray);
}

.inner {
    padding: 5em 1em;
}

@media screen and (max-width:767px) {
    .inner {
        padding: 3em min(1em, 3vw);
    }
}

.contents {
    width: 100%;
    min-height: 100vh;
    overflow: clip;
}

.contents .title {
    text-align: center;
    margin: 1em auto;
    font-size: min(2.2em, 7vw);
}

@keyframes slogan {
    0% {
        opacity: 0;
        transform: translateY(.3em);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes bouncing {
    0% {
        transform: translateY(1em);
    }

    100% {
        transform: translateY(0);
    }
}

/* =================================================
    header
================================================= */
.header {
    width: 100%;
    background-color: var(--yellow);
    position: relative;
}

@media (orientation: portrait) {
    .header {
        min-height: 140vw !important;
    }
}

.header-logo img {
    width: 10.8em;
    position: absolute;
    top: 2em;
    left: 3em;
}

@media screen and (max-width:767px) {
    .header-logo img {
        width: 8.2em;
        top: 1em;
        left: 1em;
    }
    .header .inner {
        padding-top: 1em;
    }
}

/* slogan */
.header-slogan {
    display: block;
    width: 11em;
    font-size: min(3.2em, 7vw);
    font-weight: 700;
    margin: 1.5em auto;
    position: relative;
    white-space: pre;
}

@media screen and (max-width:767px) {
    .header-slogan {
        margin-top: 20vw;
    }
}

.header-slogan span {
    display: inline-block;
    opacity: 0;
    transform: translate(.5em, 1em) scaleX(0);
    transition: transform .5s, opacity .5s;
}

.header-slogan span.on {
    opacity: 1;
    transform: translate(0, 0) scaleX(1);
}

.header-slogan.scrlstart {
    transform: translateY(1em);
    transition: transform 1s ease, opacity 1s ease;
}

/* characters */
.characters-wrp {
    display: flex;
    justify-content: center;
    margin-top: 2em;
}

.character {
    margin: 0;
    padding: 1em;
    width: 37%;
    max-width: 390px;
    text-align: center;
}

@media screen and (max-width:767px) {
    .character {
        padding: 0;
    }
}

.character .kidsna-pose {
    display: block;
    position: relative;
    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: .5s;
    animation-iteration-count: infinite;
}

.character .doctor-pose {
    display: block;
    position: relative;
    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: .5s;
    animation-delay: .25s;
    animation-iteration-count: infinite;
}

.character .kidsna-pose .kidsna-pose2 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-origin: 70% 57%;
    animation-name: waving;
    animation-direction: alternate;
    animation-duration: .25s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes waving {
    0% {
        transform: rotate(5deg);
    }

    100% {
        transform: rotate(-5deg);
    }
}

@keyframes swaying {
    0% {
        transform: translate(0, 0) rotate(2deg);
    }

    15% {
        transform: rotate(-2deg);
    }

    30% {
        transform: translate(0, .1em) rotate(2deg);
    }

    45% {
        transform: rotate(-2deg);
    }

    70% {
        transform: translate(0, 0) rotate(-2deg);
    }

    80% {
        transform: translate(0, .1em) rotate(-2deg);
    }
}

.character .doctor-pose .doctor-pose2 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 40% 30%;
    animation-name: swaying;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

/* kurou */
.kurou-top {
    width: min(270px, 25vw);
    position: absolute;
    left: 0;
    top: 57%;
    translate: 0 -50%;
}

@media (max-width:767px) {
    .kurou-top {
        top: 75%;
        translate: 5% -30%;
    }
}

.kurou-top .kurou-pose {
    rotate: 40deg;
    translate: -48%;
}

.kurou-pose {
    display: block;
    position: relative;
}

.kurou-pose .kurou-pose2 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-origin: 50% 100% 0;
    animation-name: tapping;
    animation-direction: alternate;
    animation-duration: .15s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    z-index: -1;
}

@keyframes tapping {
    0% {
        transform: translate(0, 0)rotate(2deg);
    }

    100% {
        transform: translate(0, 0)rotate(-2deg);
    }
}

.kurou-pose .kurou-pose3 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation: head-sway 0.6s linear alternate infinite;
}

@keyframes head-sway {
    0% {
        transform: rotate(-3deg);
    }

    100% {
        transform: rotate(3deg);
    }
}

/* togarin top */
.togarin-top {
    width: min(280px, 28vw);
    position: absolute;
    right: 0;
    top: 57%;
    translate: 0 -50%;
}

@media (max-width:767px) {
    .togarin-top {
        top: 80%;
        translate: -10% -50%;
    }
}

.togarin-top .togarin-pose {
    rotate: -45deg;
    translate: 40%;
}
@media screen and (max-width:767px) {
    .togarin-top .togarin-pose {
        rotate: -40deg;
        translate: 35%;
    }
}

.togarin-pose {
    display: block;
    position: relative;
}

.togarin-pose .togarin-pose2 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    animation-name: enlarge-sway;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes enlarge-sway {
    0% {
        transform: scale(1, 1);
        transform: rotate(-10deg);
    }

    50% {
        transform: scale(1.2, 1);
    }

    100% {
        transform: scale(1, 1);
        transform: rotate(10deg);
    }
}

@keyframes enlarge {
    0% {
        transform: scale(1, 1);
    }

    50% {
        transform: scale(1.1, 1);
    }

    100% {
        transform: scale(1, 1);
    }
}

.togarin-pose .togarin-pose3 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-origin: 40% 30%;
    animation-name: enlarge;
    animation-direction: alternate;
    animation-duration: .5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

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

.character .character-name {
    min-width: max-content;
    display: block;
    margin: 1.5em auto;
    font-size: min(1.1em, 4vw);
    text-align: center;
}

.kurou-top .character-name {
    margin-top: 0;
    padding-left: 1em;
    text-align: left;
}
@media screen {
    .kurou-top .character-name {
        margin-top: -2em;
    }
}
.togarin-top .character-name {
    margin-top: 0;
    padding-right: 1em;
    text-align: right;
}

/* =================================================
    character introduction
================================================= */
.chara-intro {
    text-align: center;
    position: relative;
}

.chara-intro-header {
    position: relative;
    max-width: 1100px;
    margin: 0 auto 3em;
}
@media screen and (max-width:767px) {
    .chara-intro-header {
        margin: 0 auto 5em;
    }
}

.blue-title {
    font-size: 1.2em;
    color: white;
    width: 80%;
    max-width: 12em;
    margin: 0 auto 1em;
    text-align: center;
    background-color: var(--blue);
    border-radius: 2em;
    padding: 0.8em 2em;
}

.chara-intro-title {
    font-size: min(1.3em, 7vw);
    line-height: 1.6;
    margin: 1em 0;
}

.chara-intro-title span {
    font-size: 1.5em;
    margin-right: 0.5em;
}

.chara-intro-txt {
    font-size: min(1.1em, 4vw);
    line-height: 1.75em;
}

/* character profile */
.chara-container {
    width: 100%;
    max-width: 900px;
    position: relative;
    font-size: min(.9em, 2.5vw);
    margin: 0 auto 2em;
    padding: 3em 1em;
}

@media (max-width:767px) {
    .chara-container {
        margin: 15vw auto 0;
        padding: 2em 0;
    }
}

.chara-text-wrp {
    position: absolute;
    width: 25.5%;
    z-index: 2;
}

@media (max-width:767px) {
    .chara-text-wrp {
        position: absolute;
        width: 33%;
    }
}

.description {
    display: block;
    line-height: 1.6;
}

.descriptionL {
    right: 0;
    text-align: left;
    padding: 0 1em;
}

@media (max-width:767px) {
    .descriptionL {
        padding-right: 0;
    }
}

.descriptionR {
    left: 0;
    text-align: right;
    padding: 0 1em;
}

@media (max-width:767px) {
    .descriptionR {
        padding-left: 0;
    }
}

.pointer {
    display: block;
    position: absolute;
    border-top: 2px solid var(--orange);
    top: .75em;
    width: 78%;
}

@media (max-width:767px) {
    .pointer {
        width: 35%;
    }
}

.pointerR {
    left: 100%;
}

.pointerL {
    right: 100%;
}

.pointer::after {
    content: "";
    width: 10px;
    height: 10px;
    background-color: var(--orange);
    border-radius: 50%;
    position: absolute;
    top: -1px;
}

.pointerR::after {
    left: calc(100% + 1px);
    transform: translate(-50%, -50%);
}

.pointerL::after {
    right: calc(100% + 1px);
    transform: translate(50%, -50%);
}

.chara-text-wrp1 {
    top: 47%;
    left: 0;
}

.chara-text-wrp2 {
    top: 72.5%;
    left: 0;
}

.chara-text-wrp2 .pointer {
    width: 81%;
    height: 5.75em;
    top: -5em;
    border-top: unset;
    border-right: 2px solid var(--orange);
    border-bottom: 2px solid var(--orange);
}

@media (max-width:767px) {
    .chara-text-wrp2 .pointer {
        width: 37%;
        height: 11vw;
        top: -8.5vw;
    }
}

.chara-text-wrp3 {
    top: 15%;
    left: 0;
}

.chara-text-wrp3 .pointer {
    width: 90%;
    height: 5em;
}

@media (max-width:767px) {
    .chara-text-wrp3 .pointer {
        width: 52%;
        height: 4em;
    }
}

.chara-text-wrp4 {
    top: 23%;
    right: 0;
}

.chara-text-wrp4 .pointer {
    width: 74%;
}

@media (max-width:767px) {
    .chara-text-wrp4 .pointer {
        width: 32%;
    }
}

.chara-text-wrp5 {
    top: 50%;
    right: 0;
}

.chara-text-wrp5 .pointer {
    width: 75%;
}

@media (max-width:767px) {
    .chara-text-wrp5 .pointer {
        width: 30%;
    }
}

.chara-text-wrp6 {
    top: 80%;
    right: 0;
}

.chara-text-wrp6 .pointer {
    width: 70%;
}

@media (max-width:767px) {
    .chara-text-wrp6 .pointer {
        width: 25%;
    }
}

/* kidsna */
.kidsna-intro {
    position: relative;
    width: 40%;
    max-width: 300px;
    margin: 0 auto;
    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    z-index: 0;
}

.kidsna-intro img {
    width: 100%;
    height: auto;
}

@keyframes looking {
    0% {
        transform: translateX(1em);
    }

    40% {
        transform: translateX(-1em);
    }

    70% {
        transform: translateX(0);
    }

    85% {
        transform: scaleY(1);
    }

    90% {
        transform: scaleY(.2);
    }

    95% {
        transform: scaleY(1);
    }
}

.kidsna-intro .intro-pose2 {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: center 20%;

    animation-name: looking;
    animation-direction: alternate;
    animation-duration: 3.5s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out
}

/* togarin */
.chara-intro .togarin-wrp {
    width: min(240px, 28vw);
    position: absolute;
    right: max(calc(50% - 510px), -1%);
    top: 26%;
    rotate: 15deg;
    z-index: 1;
}

@media (max-width:900px) {
    .chara-intro .togarin-wrp {
        top: 28%;
    }

    @media (max-width:767px) {
        .chara-intro .togarin-wrp {
            top: 24em;
            right: -3%;
        }
    }
}

.chara-intro .togarin-wrp .togarin {
    display: block;
    position: absolute;
}

.chara-intro .togarin-wrp .togarin-sparkle1,
.chara-intro .togarin-wrp .togarin-sparkle2 {
    animation-name: bouncing-flash;
    animation-direction: alternate;
    animation-duration: .3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

.chara-intro .togarin-wrp .togarin-sparkle2 {
    animation-delay: .3s;
}

.chara-intro .togarin-wrp .togarin-arm {
    animation-name: kidsna-arm;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transform-origin: 40% 45%;

}

.chara-intro .togarin-wrp .togarin::after {
    content: '';
    display: block;
    width: 72%;
    height: 72%;
    position: absolute;
    left: 50%;
    top: 0;
    translate: -50%;
    border-radius: 100%;
    border: solid min(4px, .5vw) #1a0b08;
    background-color: var(--blue);
    z-index: -1;
}

.chara-intro .togarin-wrp .fukidashi {
    width: min(120px, 100%);
    position: absolute;
    left: 50%;
    bottom: 105%;
    translate: -50%;
}

@media (max-width:767px) {
    .chara-intro .togarin-wrp .fukidashi {
        width: min(100px, 80%);
    }
}

/* =================================================
    kidsna story
================================================= */
.kidsna-story .inner {
    padding: 3em min(4em, 5vw);
    position: relative;
}

@media (max-width:767px) {
    .kidsna-story .inner {
        padding: 2em 0;
        position: relative;
    }
}

.kidsna-story .title {
    margin-bottom: -1.5em;
}

@media (max-width:767px) {
    .kidsna-story .title {
        margin-bottom: 0;
    }
}

.slide {
    padding: 7em 2em 7em;
    position: relative;
}

@media (max-width:767px) {
    .slide {
        padding: 3em 1em 1em;
    }
}

.slide-inner {
    border-radius: 30px;
    overflow: hidden;
}

.story-slide .img-box,
.story-slide .text-box {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    width: 50%;
    aspect-ratio: 1/1;
    overflow: hidden;
    text-align: left;
    position: relative;
}

.story-slide .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width:767px) {

    .story-slide .img-box {
        width: 100%;
        height: 66vw;
    }

    .story-slide .slide:nth-child(1) .img-box img {
        object-position: center center;
    }

    .story-slide .text-box {
        width: 100%;
        display: block;
    }
}

.story-slide .story-illust {
    position: relative;
}

/* slide1 */
.story-slide .img-box .boy {
    display: block;
    position: absolute;
    top: -40%;
    left: 100%;
    width: 100%;
    height: 100%;
}

.story-slide.scrlup.on .slick-current .img-box .boy {
    animation-name: falling;
    animation-direction: linear;
    animation-duration: 2s;
    animation-delay: .5s;
    animation-fill-mode: both;

    animation-iteration-count: 1;
    animation-timing-function: ease-in-out
}

@keyframes falling {

    0% {
        transform: translateX(0) translateY(0) rotate(30deg);
    }

    65% {
        transform: translateX(-70%) translateY(50%) rotate(0);
    }

    100% {
        transform: translateX(-100%) translateY(40%) rotate(0);
    }

}

.story-slide .img-box .star {
    display: block;
    position: absolute;
    top: 0;
    left: 0%;
    width: 100%;
    height: 100%;

    opacity: 0;
    transform-origin: 27% 65%;
}

.story-slide.scrlup.on .slick-current .img-box .star {
    animation-name: appear;
    animation-fill-mode: both;
    animation-direction: linear;
    animation-duration: 1s;
    animation-delay: 2s;

    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
}

@keyframes appear {
    0% {
        opacity: 0;
        transform: scale(.5);
    }

    60% {
        opacity: 1;
        transform: scale(1.6);
    }

    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* slide2 */
.story-slide .img-box .mom-head {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 50% 50%;
    animation-name: swaying-head1;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes swaying-head1 {
    0% {
        transform: translate(0, 0);
    }

    40% {
        transform: translate(0, .15em);
    }

    60% {
        transform: translate(0, 0);
    }

    80% {
        transform: translate(0, .15em);
    }
}

.story-slide .img-box .mom-arm {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 20% 60%;
    animation-name: swaying-arm1;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes swaying-arm1 {
    0% {
        transform: rotate(2deg);
    }

    100% {
        transform: rotate(-2deg);
    }
}

.story-slide .img-box .dad-head {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 40% 50%;
    animation-name: swaying-head2;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes swaying-head2 {
    0% {
        transform: rotate(-1.5deg);
    }

    100% {
        transform: rotate(1.5deg);
    }
}

.story-slide .img-box .dad-hand {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 50% 50%;
    animation-name: swaying-hand;
    animation-direction: alternate;
    animation-duration: .5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes swaying-hand {
    0% {
        transform: translate(0.7em, 0) rotate(2deg);
    }

    100% {
        transform: rotate(-2deg);
    }
}

/* slide3 */
.story-slide .img-box .boy-head {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 50% 50%;
    animation-name: swaying-head2;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes swaying-head2 {
    0% {
        transform: rotate(2.5deg);
    }

    100% {
        transform: rotate(-2.5deg);
    }
}

@media screen and (max-width:767px) {
    .story-slide .img-box .boy-head {
        translate: 0 -18vw;
        height: auto;
    }
}

.story-slide .img-box .boy-arm {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: 50% 50%;
    animation-name: swaying-arm2;
    animation-direction: alternate;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@media screen and (max-width:767px) {
    .story-slide .img-box .boy-arm {
        translate: 0 -18vw;
        height: auto;
    }
}

@keyframes swaying-arm2 {
    0% {
        transform: translate(-0.3em, 0);
    }

    100% {
        transform: translate(0.3em, 0);
    }
}

.story-slide .img-box .trees {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    transform-origin: center;
    animation-name: swaying2;
    animation-direction: alternate;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes swaying2 {
    0% {
        transform: translate(-0.08em, 0) rotate(-0.1deg);
    }

    100% {
        transform: translate(0.08em, 0) rotate(0.1deg);
    }
}

.story-slide .img-box .kidsna-binocular {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: 1.2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

/* togarin */
.story-slide .togarin-wrp {
    position: absolute;
    opacity: 0;
    transform: translateY(.65em);
    transition: all 1s .75s ease;
}

.slide1 .togarin-wrp {
    width: min(220px, 21%);
    left: -1%;
    top: 10%;
    z-index: 0;
}

@media (max-width:767px) {
    .slide1 .togarin-wrp {
        width: min(150px, 25%);
        left: 0;
        top: 7%;
    }
}

.slide1 .togarin-wrp .togarin-body {
    rotate: -5deg;
    position: relative;
    z-index: 2;
}

.slide1 .togarin-wrp .fukidashi {
    width: 100%;
    position: absolute;
    left: 10%;
    top: -35%;
    z-index: 1;
}

@media (max-width:767px) {
    .slide1 .togarin-wrp .fukidashi {
        left: 51%;
        top: -25%;
    }
}

.slide2 .togarin-wrp {
    width: min(175px, 22%);
    left: 3%;
    top: -1%;
    z-index: -1;
}

@media (max-width:767px) {
    .slide2 .togarin-wrp {
        width: min(170px, 25%);
        left: 3%;
        top: 1%;
        z-index: -1;
    }
}

.slide3 .togarin-wrp {
    width: min(265px, 17%);
    right: 24%;
    bottom: 2%;
    rotate: 8deg;
}

@media (max-width:767px) {
    .slide3 .togarin-wrp {
        width: min(210px, 30%);
        right: unset;
        left: 1%;
        bottom: 1%;
        rotate: 10deg;
    }
}

/* comment */
.story-slide .comment-wrp {
    display: block;
    position: absolute;
    bottom: 0;
    right: 1em;
    width: 15%;
}

@media (max-width:767px) {
    .story-slide .comment-wrp {
        width: 25%;
    }
}

.story-slide .comment-wrp .speech {
    position: absolute;
    width: 50%;
    left: -55%;
    top: 10%;
    opacity: 0;
    transform: translateX(2em) translateY(0em);
    transition: all 1s .75s ease;
}

.story-slide .comment-wrp .imgs {
    opacity: 0;
    transform: translateY(.65em);
    transition: all 1s .75s ease;
}

.story-slide.scrlup.on .slick-current .togarin-wrp,
.story-slide.scrlup.on .slick-current .comment-wrp .imgs,
.story-slide.scrlup.on .slick-current .comment-wrp .speech,
.story-slide.scrlup.on .story-slide .slick-current .img-box img,
.story-slide .slick-current .img-box img {
    opacity: 1;
    transform: translateX(0) translateY(0);
}

/* text-box */
.story-slide .text-box-inner {
    width: 100%;
    padding: 2em 12%;
}

.story-slide .text-box .lead {
    display: block;
    width: 100%;
    font-size: min(1.2em, 3.5vw);
    line-height: 1.8;
    margin-bottom: 1.5em;
    opacity: 0;
    transform: translateX(0) translateY(1.5em);
    transition: all 1s .6s ease;
}

@media (max-width:1380px) {
    .story-slide .text-box-inner {
        padding: 2em 6%;
    }

    .story-slide .text-box .lead {
        font-size: min(1.05em, 1.4vw);
    }

    @media (max-width:767px) {
        .story-slide .text-box .lead {
            margin-bottom: 1.25em;
            line-height: 1.6;
            font-size: min(1.05em, 3.5vw);
        }
    }
}

.story-slide.scrlup.on .slick-current .text-box .lead,
.story-slide .slick-current .text-box .lead {
    opacity: 1;
    transform: translateX(0) translateY(0);
}

/* slick arrow, dots */
.story-slide .slick-dots {
    position: absolute;
    bottom: 2em;
}

@media (max-width:767px) {
    .story-slide .slick-dots {
        bottom: 1.75em;
    }
}

.story-slide .slick-dots li.slick-active button::before {
    opacity: var(--dot-opacity, 1);
}

.story-slide .slick-dots li:nth-child(1) button:before {
    border-color: var(--blue);
}

.story-slide .slick-dots li:nth-child(1).slick-active button:before {
    background-color: var(--blue, #aaa);
}

.story-slide .slick-dots li:nth-child(2) button:before {
    border-color: var(--orange);
}

.story-slide .slick-dots li:nth-child(2).slick-active button::before {
    background-color: var(--orange, #aaa);
}

.story-slide .slick-dots li:nth-child(3) button:before {
    border-color: var(--green);
}

.story-slide .slick-dots li:nth-child(3).slick-active button::before {
    background-color: var(--green, #aaa);
}


/* =================================================
    rival intro
================================================= */
.rival-intro .inner {
    padding-top: 0;
}

.rival-intro .comment-wrp {
    width: min(860px, 100%);
    margin: 0 auto;
}

.rival-intro .speech-wrp {
    margin-bottom: 1em;
    display: flex;
    align-items: center;
    gap: 2em min(2em, 3vw);
}

@media screen and (max-width:767px) {
    .rival-intro .speech-wrp {
        margin-bottom: 2em;
    }
}

.rival-intro .speech-wrp.left {
    --color: var(--blue);
}

.rival-intro .speech-wrp.right {
    --color: var(--pink);
    justify-content: flex-end;
}

.rival-intro .speech-wrp .img {
    width: min(160px, 20vw);
    aspect-ratio: 1/1;
    overflow: clip;
    border-radius: 100%;
    background-color: #fff;
    border: solid min(5px, 1vw) var(--color);
    flex-shrink: 0;
}

.rival-intro .speech-wrp .img img {
    padding: 15% 13% 0;
}

.rival-intro .speech-wrp .img.kurou img {
    padding: 7% 5% 0;
}

.rival-intro .speech-wrp .img.togarin img {
    padding: 15% 6% 0;
}

.rival-intro .speech-wrp .speech {
    padding: 0 1em;
    flex-shrink: 1;
    font-size: min(1.1em, 3.7vw);
    line-height: 2;
}

@media screen and (max-width:767px) {
    .rival-intro .speech-wrp .speech {
        padding: 0;
    }
}

.rival-intro-wrp {
    width: min(840px, 100%);
    margin: min(100px, 15vw) auto 0;
    padding: min(60px, 10vw) min(100px, 3vw) min(60px, 5vw);
    border: solid 5px var(--pink);
    position: relative;
}

.rival-intro-wrp .title {
    width: max-content;
    margin: 0;
    padding: 0 1em;
    background-color: var(--bggray);
    position: absolute;
    left: 50%;
    top: 0;
    translate: -50% -50%;
    font-size: min(1.7em, 4.8vw);
}

.rival-intro-wrp .title .sml {
    display: block;
    margin-bottom: .75em;
    font-size: .7em;
    color: var(--pink);
}

.rival-characters-wrp {
    margin-top: min(100px, 15vw);
    display: grid;
    justify-content: center;
    grid-auto-flow: column;
    grid-template-columns: repeat(2, min(300px, 50%));
    grid-template-rows: 1fr auto;
    gap: min(1.5em, 3vw) min(2em, 4vw);
}

.rival-characters-wrp .img-box {
    display: block;
    position: relative;
    align-self: end;
}

.rival-characters-wrp .img-box .fukidashi {
    width: min(220px, 90%);
    position: absolute;
    left: 50%;
    bottom: 100%;
    translate: -50%;
}

.rival-characters-wrp .img-box .kurou-pose {
    width: min(200px, 75%);
    margin: 0 auto;
}

.rival-characters-wrp .img-box .togarin-pose {
    width: min(205px, 77%);
    margin: 0 auto;
}

.rival-characters-wrp .img-box .togarin-intro .togarin-pose {
    animation-name: float;
    animation-direction: alternate;
    animation-duration: .8s;
    animation-delay: .5s;
    animation-iteration-count: infinite;
}

@keyframes float {
    0% {
        transform: translatey(0px);
    }

    50% {
        transform: translatey(-60px);
    }

    100% {

        transform: translatey(0px);
    }
}

.rival-characters-wrp .img-box .character-name {
    width: min(12em, 90%);
    padding: .5em;
    margin: 2em auto 0;
    text-align: center;
    font-size: min(1em, 3.7vw);
    color: #fff;
    background-color: var(--pink);
    border-radius: 100vmax;
}

.rival-characters-wrp .text-box .description {
    text-align: center;
    font-size: min(1.1em, 3.5vw);
    line-height: 1.8;
}

/* =================================================
    Discovery
================================================= */

/* discovery-title */
.discovery-title-wrp .kidsna-thinking {
    width: 100%;
    max-width: 110px;
    margin: 0 auto;
}

.discovery-title-wrp .question-title {
    text-align: center;
    margin: 1em auto;
    font-size: min(2.2em, 7vw);
    width: 12em;
    background: linear-gradient(transparent 70%, var(--yellow) 70%);
}

/* discovery-contents */
.discovery-contents {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2em 1em 5em;
    position: relative;
    z-index: 0;
}

@media screen and (max-width:767px) {
    .discovery-contents {
        padding: 1em 1em 4em;
    }
}

/* title-wrp */
.discovery-contents .title-wrp {
    text-align: center;
}

.discovery-contents .title-wrp .yellow-title {
    font-size: 1.2em;
    width: 80%;
    max-width: 12em;
    margin: 1em auto 1.5em;
    text-align: center;
    background-color: var(--yellow);
    border-radius: 2em;
    padding: 0.8em 2em;
}

.discovery-contents .title-wrp .number-title {
    font-size: min(3.5em, 10vw);
    color: var(--blue);
}

.discovery-contents .title-wrp .content-title {
    margin: .5em auto 1em;
    font-size: min(2.5em, 5vw);
    line-height: 1.5;
}

@media screen and (max-width:767px) {
    .discovery-contents .title-wrp .content-title {
        margin: 1.5em auto 1em;
    }
}

/* top-half */
.top-half {
    position: relative;
}

.top-half .text-wrp .discovery-description {
    width: 100%;
    text-align: center;
    font-size: min(1.1em, 4vw);
    line-height: 1.75em;
}

.top-half .discovery-togarin {
    position: absolute;
    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: 1.2s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@media screen and (max-width:767px) {
    .top-half .discovery-togarin {
        aspect-ratio: 1/1;
        position: relative !important;
        left: unset !important;
        top: unset !important;
        z-index: 4 !important;
    }
}

.top-half .discovery-togarin::before {
    content: '';
    width: 105%;
    aspect-ratio: 1/1;
    border-radius: 100%;
    background-color: color-mix(in srgb, var(--discovery-color), #fff 60%);
    position: absolute;
    left: 50%;
    top: 50%;
    translate: -52% -10%;
}

@media screen and (max-width:767px) {
    .top-half .discovery-togarin::before {
        translate: -50% -60%;
    }
}

.top-half .discovery-togarin.on [class*="fukidashi"] {
    animation-name: pop-out-togarinfukidashi;
    animation-fill-mode: both;
    animation-duration: .8s;
    animation-delay: 0.3s;
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
}

@keyframes pop-out-togarinfukidashi {
    0% {
        opacity: 0;
        scale: .8;
        translate: 0 20%;
    }

    80% {
        opacity: 1;
        scale: 1.03;
        translate: 0 -10%;
    }

    100% {
        opacity: 1;
        scale: 1;
        translate: 0 0;
    }
}

.top-half .illust-box {
    position: relative;
    width: 60%;
    margin: 4em auto 1em;
    z-index: 3;
}

@media screen and (max-width:767px) {
    .top-half .illust-box {
        width: 100%;
        margin: 1em auto .5em;
        scale: 1.15;
    }
}

.top-half .illust-box .danger-spot {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;

    animation-name: appear-disapear;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 1.2s;

    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@keyframes appear-disapear {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.top-half .illust-box .discoverytp-kidsna {
    position: absolute;
    width: 35%;
    bottom: -20%;
    right: -35%;
    z-index: 3;
    aspect-ratio: 1/1;
    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: 1.2s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@media screen and (max-width:767px) {
    .top-half .illust-box .discoverytp-kidsna {
        position: absolute;
        width: 30%;
        bottom: -75%;
        right: 3%;

    }
}

.top-half .illust-box .discovery-kidsna-fukidashi {
    position: absolute;
    top: -55%;
    left: 10%;
    width: 90%;
}

.top-half .illust-box.on .discovery-kidsna-fukidashi {
    animation-name: pop-out-fukidashi;
    animation-fill-mode: both;
    animation-direction: linear;
    animation-duration: 1s;
    animation-delay: 0.3s;
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
}

.top-half .discovery-kidsna-body,
.top-half .discovery-kidsna-beam {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.top-half .discovery-kidsna-beam {
    animation-name: bouncing-flash;
    animation-direction: alternate;
    animation-duration: 1.2s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@keyframes bouncing-flash {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

/* bottom-half */
.bottom-half {
    margin: 0 auto;
    width: 100%;
    border-radius: 3em;
    background-color: var(--bggray);
    padding: min(4em, 5vw);
    position: relative;
    z-index: 0;
}

@media screen and (max-width:767px) {
    .bottom-half {
        padding: 2em;
    }
}

.bottom-half .text-box {
    width: 55%;
    position: relative;
    padding-left: 120px;
}

@media screen and (max-width:980px) {
    .bottom-half .text-box {
        padding-left: 0;
    }

    @media screen and (max-width:767px) {
        .bottom-half .text-box {
            display: contents;
        }
    }
}

.bottom-half .color-icon {
    width: 7.2em;
    height: 7.2em;
    border-radius: 50%;
    background-color: white;
    border: 8px solid var(--discovery-color);
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -15px;
    left: -15px;
    font-size: min(1em, 3vw);
}

@media screen and (max-width:980px) {
    .bottom-half .color-icon {
        top: -1.5em;
    }

    @media screen and (max-width:767px) {
        .bottom-half .color-icon {
            position: static;
            margin: 0 auto 1em;
        }
    }
}

.bottom-half .color-icon p {
    text-align: center;
    line-height: 1.3em;
}

.bottom-half .description-title {
    width: 100%;
    text-align: left;
    font-size: min(1.5em, 4.5vw);
    line-height: 1.5em;
}

@media screen and (max-width:980px) and (min-width:767.1px) {
    .bottom-half .description-title {
        margin-bottom: 2em;
        padding-left: 5.5em;
    }
}

.bottom-half .color-title {
    font-size: min(1.2em, 3.5vw);
    margin: 1em auto;
    padding: .5em 0;
    text-align: center;
    color: var(--discovery-color);
    border-top: 2px solid;
    border-bottom: 2px solid;
}

@media screen and (max-width:767px) {
    .bottom-half .color-title {
        margin: 1.5em auto;
    }
}

.bottom-half .bottom-description {
    font-size: min(1em, 3.5vw);
    text-align: justify;
    line-height: 1.8;
    margin-bottom: 2em;
}

@media screen and (max-width:767px) {
    .bottom-half .description-btn-wrp {
        width: 100%;
        order: 1;
    }
}

.description-btn {
    display: block;
    position: relative;
    width: 100%;
    border-radius: 3em;
    font-size: min(1em, 3vw);
    color: #fff;
    background-color: var(--discovery-color);
    padding: 1em;
    border: 2px solid;
    text-decoration: none;
    text-align: center;
    transition: all 0.3s ease;
}

.description-btn:hover {
    color: var(--discovery-color);
    background-color: #fff;
}

.description-btn::after {
    content: '';
    position: absolute;
    display: block;
    width: .75em;
    height: .65em;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    background-color: currentColor;
    right: 1.25em;
    top: 50%;
    transform: translateY(-50%);
}

.bottom-half .pic-box {
    width: 35%;
    padding: 0;
    position: relative;
}

@media screen and (max-width:980px) {
    .bottom-half .pic-box {
        width: 40%;
    }

    @media screen and (max-width:767px) {
        .bottom-half .pic-box {
            width: 100%;
            padding: 0;
            margin-bottom: 30vw;

        }
    }
}

.bottom-half .pic-box .pic-img {
    border: 4px solid white;
    border-radius: 1.5em;
    overflow: hidden;
}

/* Discovery 1 */
.discovery1 {
    margin-top: 5em;
    text-align: center;
    --discovery-color: var(--orange);
}

.top-half .discovery1-togarin {
    width: min(230px, 22vw);
    position: absolute;
    left: 1%;
    top: 5%;
}

@media screen and (max-width:1024px) {
    .top-half .discovery1-togarin {
        left: -2%;
        top: 45%;
    }

    @media screen and (max-width:767px) {
        .top-half .discovery1-togarin {
            width: min(260px, 28vw);
            margin: 2em 0em -1em;
        }
    }
}

.top-half .discovery1-togarin .discovery1-togarin-body {
    rotate: -10deg;
    display: block;
    position: absolute;
}

.discovery1-togarin-body .togarin-smile-armL {
    transform-origin: 70% 57%;
    animation-name: waving;
    animation-direction: alternate;
    animation-duration: .15s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

.discovery1-togarin-body .togarin-smile-armR {
    animation-name: kidsna-arm;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transform-origin: 40% 45%;
}

@keyframes waving {
    0% {
        transform: rotate(5deg);
    }

    100% {
        transform: rotate(-5deg);
    }
}

.top-half .discovery1-togarin .discovery1-togarin-fukidashi {
    width: 80%;
    position: absolute;
    bottom: 100%;
    left: 10%;
}

@media screen and (max-width:767px) {
    .top-half .discovery1-togarin .discovery1-togarin-fukidashi {
        width: 110%;
        position: absolute;
        bottom: 45%;
        left: 90%;
    }
}

.bottom-half .discovery1-kidsna {
    position: absolute;
    width: 15%;
    right: -2em;
    bottom: -1em;
    rotate: -15deg;
    aspect-ratio: 1/1;
}

@media screen and (max-width:767px) {
    .bottom-half .discovery1-kidsna {
        position: absolute;
        width: 35%;
        right: 0;
        bottom: 10%;
    }
}

.bottom-half .discovery1-kidsna .discovery1-kidsna1,
.bottom-half .discovery1-kidsna .discovery1-kidsna2,
.bottom-half .discovery1-kidsna .discovery1-kidsna3 {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

@keyframes pop-out-fukidashi {
    0% {
        opacity: 0;
        scale: .6;
        rotate: 0;
        translate: 0 0;
    }

    60% {
        opacity: 1;
        scale: 1.1;
        rotate: -10deg;
        translate: 0 -20%;
    }

    100% {
        opacity: 1;
        scale: 1;
        rotate: 0;
        translate: 0 -10%;
    }
}

@keyframes pop-out-idea {
    0% {
        opacity: 0;
        scale: .6;
        rotate: 0;
        translate: 0 0;
    }

    60% {
        opacity: 1;
        scale: 1.1;
        rotate: 20deg;
        translate: 0 -20%;
    }

    100% {
        opacity: 1;
        scale: 1;
        rotate: 15deg;
        translate: 0 -10%;
    }
}

.bottom-half .discovery1-kidsna.on .discovery1-kidsna2 {
    animation-name: pop-out-idea;
    animation-fill-mode: both;
    animation-direction: linear;
    animation-duration: 1s;
    animation-delay: 0.3s;
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
}

.bottom-half .discovery1-kidsna.on .discovery1-kidsna3 {
    animation-name: kidsna-arm;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transform-origin: 40% 45%;
}

@keyframes kidsna-arm {
    0% {
        transform: translate(0, 0) rotate(3deg);
    }

    100% {
        transform: translate(0, 0) rotate(-3deg);
    }
}

.bottom-half .discovery1-kidsna .discovery-fukidashi {
    position: absolute;
    width: 100%;
    bottom: 30%;
    left: -30%;
    opacity: 0;
    rotate: 15deg;
}

.bottom-half .discovery1-kidsna.on .discovery-fukidashi {
    animation-name: slideLeft;
    animation-fill-mode: both;
    animation-direction: linear;
    animation-iteration-count: 1;
    animation-duration: .7s;
    animation-timing-function: ease-in-out;
}

@keyframes slideLeft {
    0% {
        opacity: 0;
        transform: translateX(-50%) scale(0.5);
    }

    100% {
        opacity: 1;
        transform: translateX(-100%) scale(1.5);
    }
}


/* Discovery 2 */
.discovery2 {
    --discovery-color: var(--green);
}

.top-half .discovery2-togarin {
    width: min(230px, 20vw);
    position: absolute;
    left: 2%;
    top: 40%;
}

@media screen and (max-width:1024px) {
    .top-half .discovery2-togarin {
        left: -1%;
    }

    @media screen and (max-width:767px) {
        .top-half .discovery2-togarin {
            width: min(230px, 30vw);
            margin: 3em 1em 0;

        }
    }
}

.top-half .discovery2-togarin .discovery2-togarin-body {
    rotate: -10deg;
    display: block;
    position: absolute;
}

.top-half .discovery2-togarin .discovery2-togarin-body .togarin-joy-arm,
.top-half .discovery4-togarin .discovery4-togarin-body .togarin-joy-arm {
    animation-name: kidsna-arm;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 0.15s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transform-origin: 40% 45%;
}

.top-half .discovery2-togarin .discovery2-togarin-fukidashi {
    width: 94%;
    position: absolute;
    bottom: 100%;
    left: 3%;
}

@media screen and (max-width:767px) {
    .top-half .discovery2-togarin .discovery2-togarin-fukidashi {
        width: 120%;
        position: absolute;
        bottom: 56%;
        left: 90%;
    }
}

.top-half .illust-box2 .discoverytp2-kidsna,
.top-half .illust-box4 .discoverytp2-kidsna {
    bottom: -1em;
}

@media screen and (max-width:767px) {
    .top-half .illust-box2 .discoverytp2-kidsna,
    .top-half .illust-box4 .discoverytp2-kidsna {
        bottom: -75%;
    }
}

.top-half .illust-box2 .discovery-kidsna-arm,
.top-half .illust-box4 .discovery-kidsna-arm {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;

    animation-name: kidsna-arm;
    animation-direction: alternate;
    animation-duration: .3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

.top-half .illust-box2 .discovery-kidsna-fukidashi,
.top-half .illust-box4 .discovery-kidsna-fukidashi {
    left: 20%;
}

@media screen and (max-width:767px) {
    .top-half .illust-box2 .discovery-kidsna-fukidashi,
    .top-half .illust-box4 .discovery-kidsna-fukidashi {
        width: 95%;
        left: 4%;
    }
}

.bottom-half .discovery2-kidsna,
.bottom-half .discovery4-kidsna {
    position: absolute;
    width: 15%;
    right: 25%;
    top: 60%;
}

@media screen and (max-width:767px) {

    .bottom-half .discovery2-kidsna,
    .bottom-half .discovery4-kidsna {
        width: 35%;
        right: unset;
        top: unset;
        bottom: 12%;
        left: -2%;
    }
}

.bottom-half .discovery2-kidsna1,
.bottom-half .discovery2-kidsna2,
.bottom-half .discovery4-kidsna1,
.bottom-half .discovery4-kidsna2 {
    width: 100%;
}

.bottom-half .discovery2-kidsna .discovery2-kidsna1,
.bottom-half .discovery4-kidsna .discovery4-kidsna1 {
    width: 100%;
}

.bottom-half .discovery2-kidsna .discovery2-kidsna2,
.bottom-half .discovery4-kidsna .discovery4-kidsna2 {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

.bottom-half .discovery2-kidsna .discovery-fukidashi,
.bottom-half .discovery4-kidsna .discovery-fukidashi {
    position: absolute;
    width: 100%;
    bottom: 5%;
    left: 20%;
    opacity: 0;
}

.bottom-half .discovery2-kidsna.on .discovery-fukidashi,
.bottom-half .discovery4-kidsna.on .discovery-fukidashi {
    animation-direction: linear;
    animation-iteration-count: 1;
    animation: slideRight 0.7s ease-in-out 0.3s forwards;
}

@keyframes slideRight {
    0% {
        opacity: 0;
        transform: translateX(50%) scale(0.5);
    }

    100% {
        opacity: 1;
        transform: translateX(100%) scale(1.5);
    }
}

/* Discovery 3 */
.discovery3 {
    --discovery-color: var(--orangeL);
}

.top-half .discovery3-togarin {
    width: min(230px, 20vw);
    position: absolute;
    left: 0;
    top: 14%;

}


@media screen and (max-width:1024px) {
    .top-half .discovery3-togarin {
        left: -4%;
        top: 25%;
    }

    @media screen and (max-width:767px) {
        .top-half .discovery3-togarin {
            width: min(260px, 30vw);
            margin: 3em 0 -3em;
        }
    }
}

.top-half .discovery3-togarin .discovery3-togarin-body {
    rotate: -10deg;
    display: block;
    position: absolute;
}

.discovery3-togarin-body .togarin-laugh-mouth {
    animation-name: enlargeY;
    animation-direction: alternate;
    animation-duration: .5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes enlargeY {
    0% {
        transform: scale(0.9, 0.9);

    }

    50% {
        transform: scale(0.9, 1.1);
    }

    100% {
        transform: scale(0.9, 0.9);

    }
}

.discovery3-togarin-body .togarin-laugh-armR {
    animation-name: kidsna-arm;
    animation-direction: alternate;
    animation-duration: .15s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

.discovery3-togarin-body .togarin-laugh-armL {
    animation-name: kidsna-arm2;
    animation-direction: alternate;
    animation-duration: .15s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

@keyframes kidsna-arm2 {
    0% {
        transform: translate(0, 0) rotate(-3deg);
    }

    100% {
        transform: translate(0, 0) rotate(3deg);
    }
}

.top-half .discovery3-togarin .discovery3-togarin-fukidashi {
    width: 95%;
    position: absolute;
    bottom: 100%;
    left: 10%;
}

@media screen and (max-width:767px) {
    .top-half .discovery3-togarin .discovery3-togarin-fukidashi {
        width: 110%;
        position: absolute;
        bottom: 60%;
        left: 90%;
    }
}

.top-half .illust-box3 {
    translate: -15% 0;
}

@media screen and (max-width:767px) {
    .top-half .illust-box3 {
        margin: -2em auto .5em;
        translate: 0 0;
    }
}

.top-half .illust-box3 .discoverytp3-kidsna {
    translate: 15% 0;
}

@media screen and (max-width:767px) {
    .top-half .illust-box3 .discoverytp3-kidsna {
        translate: 0 0;
        bottom: -115%;
    }
}

.top-half .illust-box3 .discoverytp3-kidsna .discovery-kidsna-body {
    rotate: 10deg;
}

.top-half .illust-box3 .discoverytp3-kidsna .discovery-kidsna-arm {
    rotate: 10deg;
    animation-name: kidsna-arm;
    animation-direction: alternate;
    animation-duration: .5s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

.top-half .illust-box3.on .discovery-kidsna-fukidashi {
    width: 95%;
    left: 5%;
    top: -50%;
}

@media screen and (max-width:767px) {
    .top-half .illust-box3.on .discovery-kidsna-fukidashi {
        width: 100%;
        left: -3%;
        top: -55%;
    }
}

.bottom-half .discovery3-kidsna {
    position: absolute;
    width: 8%;
    right: 3%;
    top: 55%;
}

@media screen and (max-width:767px) {
    .bottom-half .discovery3-kidsna {
        width: 16%;
        top: unset;
        bottom: 10%;
    }
}

.bottom-half .discovery3-kidsna .discovery3-kidsna1 {
    width: 100%;
}

.bottom-half .discovery3-kidsna .discovery-fukidashi {
    width: 140%;
    position: absolute;
    top: 25%;
    left: -80%;
    opacity: 0;
}

@media screen and (max-width:767px) {
    .bottom-half .discovery3-kidsna .discovery-fukidashi {
        width: 180%;
    }
}

.bottom-half .discovery3-kidsna.on .discovery-fukidashi {
    animation: slideLeft 0.7s ease-in-out 0.3s forwards;
    animation-direction: linear;
    animation-iteration-count: 1;
}

/* Discovery 4 */
.discovery4 {
    --discovery-color: var(--blue);
}

.top-half .discovery4-togarin {
    width: min(240px, 20vw);
    position: absolute;
    left: 1%;
    top: 27%;
}

@media screen and (max-width:1024px) {
    .top-half .discovery4-togarin {
        left: -2%;
        top: 35%;
    }

    @media screen and (max-width:767px) {
        .top-half .discovery4-togarin {
            width: min(260px, 30vw);
            margin: 3em 0 -2em;
        }
    }
}

.top-half .discovery4-togarin .discovery4-togarin-body {
    rotate: 60deg;
    display: block;
    position: absolute;
}

.top-half .discovery4-togarin .discovery4-togarin-fukidashi {
    width: 80%;
    position: absolute;
    bottom: 100%;
    left: 10%;
}

@media screen and (max-width:767px) {
    .top-half .discovery4-togarin .discovery4-togarin-fukidashi {
        width: 100%;
        position: absolute;
        bottom: 65%;
        left: 80%;
    }
}

.top-half .illust-box4 {
    margin: 4em auto -2.5em;
}

@media screen and (max-width:767px) {
    .top-half .illust-box4 {
        margin-top: 1em;
        margin: 1em auto -.5em;
        translate: -4%;
    }
}

.top-half .illust-box4 .discoverytp4-kidsna {
    bottom: 10%;
}

@media screen and (max-width:767px) {
    .top-half .illust-box4 .discoverytp4-kidsna {
        bottom: -78%;
    }
}

.top-half .illust-box4 .discovery-kidsna-fukidashi {
    top: -50%;
    left: 10%;
}

.discovery4 .bottom-half .discovery4-kidsna .discovery-fukidashi {
    position: absolute;
    width: 80%;
    bottom: 15%;
    left: 40%;
    opacity: 0;
}


/* =================================================
    Four Discoveries
================================================= */
.four-discoveries {
    text-align: center;
}

.four-discoveries .inner {
    padding-bottom: 0;
    position: relative;
}

@media screen and (max-width:767px) {
    .four-discoveries .inner {
        padding-bottom: min(400px, 75vw);

    }
}

.serif-title {
    display: inline-block;
    font-size: min(2em, 5vw);
    line-height: 1.5;
    padding: 0 1em;
    margin-bottom: 1em;
    position: relative
}

.serif-title::before,
.serif-title::after {
    content: '';
    width: 2px;
    height: 120%;
    background-color: #222;
    position: absolute;
    top: 0;
}

.serif-title::before {
    left: 0;
    rotate: -35deg;
}

.serif-title::after {
    right: 0;
    rotate: 35deg;
}

.content-box {
    margin: 1em auto 0;
    justify-content: center;
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0 4em;
    position: static;
}

@media screen and (max-width:767px) {
    .content-box {
        display: contents;
    }
}

.four-circles~.content-box {
    margin-bottom: 0;
    padding-bottom: min(80px, 10vw);
    gap: 2em 4em;
}

.content-text p {
    display: block;
    font-size: min(1.1em, 4vw);
    line-height: 1.7em;
    text-align: left;
    margin-bottom: 1em;
}

@media screen and (max-width:767px) {
    .content-text p {
        text-align: center;
    }
}

.content-text p.text-center {
    text-align: center;
}

.four-discoveries-img {
    position: relative;
}

@media screen and (max-width:767px) {
    .four-discoveries-img {
        margin: 0 auto;
    }
}

.four-discoveries-img-front {
    width: 20%;
    aspect-ratio: 1/1.2;
}

@media screen and (max-width:767px) {
    .four-discoveries-img-front {
        width: 65%;
        translate: 5% 0;
        order: 1;
    }
}

.four-discoveries-img-togarin {
    width: 18%;
    aspect-ratio: 1/1;
    align-self: flex-end;
    /* display: block;
    position: absolute;
    right: 10%;
    top: 10%; */
}

@media screen and (max-width:767px) {
    .four-discoveries-img-togarin {
        width: min(210px, 43%);
        position: absolute;
        bottom: 6vw;
        right: 50%;
        /* translate: 0 0; */

    }
}

.four-discoveries-togarin {
    display: block;
    position: absolute;
}

.four-discoveries-togarin .togarin-cry-head {
    animation-name: kidsna-arm;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
}

.four-discoveries-togarin .togarin-cry-tear {
    opacity: 0;
    transform: translate(-50px);
    animation: fadeInSlideDown 2s infinite;
}

@keyframes fadeInSlideDown {
    0% {
        opacity: 0;
        transform: translateY(-50px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.four-discoveries-togarin .togarin-cry-words {
    display: block;
    position: relative;
    animation-name: bouncing;
    animation-direction: alternate;
    animation-duration: 3s;
    animation-iteration-count: infinite;
}

.four-discoveries-img-togarin .togarin-fukidashi {
    width: 85%;
    position: absolute;
    left: 10%;
    bottom: 100%;
}

@media screen and (max-width:767px) {

    .four-discoveries-img-togarin .togarin-fukidashi {
        width: 90%;
    }
}

.four-discoveries-img-kurou {
    width: 18%;
    translate: 0 min(80px, 10vw);
    align-self: flex-end;
}

@media screen and (max-width:767px) {
    .four-discoveries-img-kurou {
        width: min(180px, 40%);
        position: absolute;
        bottom: 0;
        left: 55%;
        translate: 0 0;
    }
}

.four-discoveries-img-kurou .kurou-fukidashi {
    width: 78%;
    position: absolute;
    left: 12%;
    bottom: 100%;
}

.four-discoveries-img-back {
    width: 20%;
}

@media screen and (max-width:767px) {
    .four-discoveries-img-back {
        width: 65%;
        order: 1;
    }
}

.four-discoveries-img .discovery1-kidsna1,
.four-discoveries-img .discovery1-kidsna2,
.four-discoveries-img .discovery1-kidsna3 {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.four-discoveries-img.on .discovery1-kidsna2 {
    animation-name: pop-out-idea;
    animation-fill-mode: both;
    animation-direction: linear;
    animation-duration: 1s;
    animation-delay: 0.3s;
    animation-iteration-count: 1;
    animation-timing-function: ease-in-out;
}

.four-discoveries-img .discovery1-kidsna3 {
    animation-name: kidsna-arm;
    animation-fill-mode: both;
    animation-direction: alternate;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out;
    transform-origin: 40% 45%;
}

/* circles */
.four-circles {
    display: flex;
    justify-content: center;
    gap: 3em;
    margin: 2em auto 4em;
}

.four-circles .circle {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: min(1.3em, 3vw);
    line-height: 1.5;
    background-color: #ffff;
    border: 10px solid transparent;
    color: #000;
    margin: 0 auto;
}

@media screen and (max-width:767px) {
    .four-circles {
        gap: .5em;
    }

    .four-circles .circle {
        width: min(7em, 130px);
        height: min(7em, 130px);
        border-width: 6px;
    }
}

.four-circles .circle-wrp:nth-child(1) .circle {
    border-color: var(--orange);
}

.four-circles .circle-wrp:nth-child(2) .circle {
    border-color: var(--green);
}

.four-circles .circle-wrp:nth-child(3) .circle {
    border-color: var(--orangeL);
}

.four-circles .circle-wrp:nth-child(4) .circle {
    border-color: var(--blue);
}

.four-circles .circle-wrp .circle-caption {
    font-size: min(1em, 2.6vw);
    margin: 1em 0;
    line-height: 1.5;
}

.four-circles .circle-wrp:nth-child(1) .circle-caption {
    color: var(--orange);
}

.four-circles .circle-wrp:nth-child(2) .circle-caption {
    color: var(--green);
}

.four-circles .circle-wrp:nth-child(3) .circle-caption {
    color: var(--orangeL);
}

.four-circles .circle-wrp:nth-child(4) .circle-caption {
    color: var(--blue);
}


/* =================================================
    Discover More
================================================= */
.more-wrp {
    margin: 0 auto;
    text-align: center;
}

.more-title {
    font-size: min(2.5em, 8vw);
    color: var(--blue);
}

.more-subtitle {
    font-size: min(1.3em, 7vw);
    line-height: 1.6;
    margin: 1.5em 0 2em 0;
}

.boxes-container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
}

.white-box {
    display: block;
    width: 46%;
    background-color: #fff;
    text-align: center;
    border-radius: 1.5em;
    padding: 3em 2em 2em;
    position: relative;
    transition: all .3s;
}

.white-box:hover {
    scale: 1.05;
}

@media screen and (max-width:767px) {
    .white-box {
        width: 49%;
        border-radius: 1em;
        padding: 1em 0 0;
        position: relative;
        overflow: hidden;
    }
}

.box-text {
    font-size: min(1.2em, 3vw);
    line-height: 1.5;
    margin-bottom: 2em;
}

@media screen and (max-width:767px) {
    .box-text {
        margin-bottom: 1em;
    }
}

.box-text img {
    width: 100%;
    height: auto;
}


/* =================================================
    next-story
================================================= */
.next-story {
    text-align: center;
}

.next-story .serif-title {
    margin-bottom: 0 !important;
}

.next-story .title {
    font-size: min(2.5em, 6vw);
    margin: 1em auto;
}

.next-story .character {
    width: 100%;
    max-width: 300px;
    margin: -1em auto 0;
}


/* =================================================
    campaign
================================================= */
.campaign {
    text-align: center;
    background-color: #f9b14b;
}

.campaign .inner {
    background-image: url('../img/kizzuna-bookBG.jpg');
    background-repeat: repeat;
    background-size: 50%;
}

@media screen and (max-width:767px) {
    .campaign .inner {
        background-size: 120%;
    }
}

.campaign .cmp-banner {
    display: block;
    width: 100%;
    max-width: 900px;
    margin: 2em auto;
    padding: 1em;
    position: relative;
}

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

    .forSP {
        display: block;
        min-width: 100%;
        max-width: 150%;
        justify-content: center;
    }
}

@media screen and (min-width:768px) {
    .forPC {
        display: block;
    }

    .forSP {
        display: none;
    }
}

.campaign .conditions {
    text-align: left;
    padding-left: 1.5em;
    margin-top: 2em;
}

@media screen and (max-width:767px) {
    .campaign .conditions {
        margin-top: 3em;
    }
}

.campaign .conditions p {
    background-color: #fff;
    font-size: 0.9em;
    border: 2px solid var(--blue);
    color: var(--blue);
    padding: 0.3em;
    width: 70px;
    text-align: center;
    margin-bottom: 0.5em;
}

.campaign .note {
    font-size: .82em;
    line-height: 1.5;
}

.campaign .note li {
    margin-bottom: .3em;
    padding-left: 1em;
    position: relative;
}

.campaign .note li::before {
    content: '';
    display: block;
    width: .6em;
    height: .6em;
    border-radius: 50%;
    background-color: var(--blue);
    position: absolute;
    top: 0.45em;
    left: 0;
}


/* =================================================
    more
================================================= */
.and-more {
    text-align: center;
}

.and-more .subtitle {
    font-size: min(1.3em, 7vw);
    line-height: 1.6;
    margin: 0 auto 2em;
    color: #fff;
}

@media screen and (max-width:767px) {
    .story-text-box {
        width: 100%;
        text-align: center;
    }
}

.and-more .linestamp16 {
    width: 5em;
    height: 5em;
    background-color: var(--yellow);
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1em;
}

@media screen and (max-width:767px) {
    .and-more .linestamp16 {
        margin: 1em auto;
    }
}

.and-more .story-text-box p {
    text-align: left;
    line-height: 1.8;
    color: #fff;
}

@media screen and (max-width:767px) {
    .and-more .story-text-box p {
        text-align: center;
    }
}

.and-more .content-box {
    max-width: 900px;
    margin: 3em auto;
    display: flex;
    gap: 0;
}

.and-more .stamp {
    width: 30%;
    padding: 0 1em;
}

@media screen and (max-width:767px) {
    .and-more .stamp {
        width: 48%;
        margin-top: 2em;
    }
}

.and-more .stamp img {
    width: 100%;
    height: auto;
}

.and-more .description-btn {
    background-color: var(--yellow);
    color: #000;
    max-width: 400px;
    margin: 2em auto 1em;
    border: none;
}

.and-more .description-btn::after {
    background-color: #000;
}

.and-more .description-btn:hover {
    background-color: #000;
    color: #fff;
}

.and-more .description-btn:hover::after {
    background-color: #fff;
}

.campaign .sml {
    font-size: 0.8em;
    margin-left: -0.75em;
}


/* =================================================
    page top
================================================= */
.page-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 11;
}

.page-top_btn {
    background: var(--blue);
    display: flex;
    width: 60px;
    height: 60px;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
    cursor: pointer;
    transition: all .3s;
}

.page-top_btn img {
    width: 13px;
}