@font-face {
    src: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/142996/polar.otf");
    font-family: 'Polar';
}

*,
*:before,
*:after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    font-size: 62.5%;
    height: 100%;
    overflow: hidden;
}

body {
    background: #000;
}

svg {
    display: block;
    overflow: visible;
}

.slider-container {
    position: relative;
    height: 100%;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: all-scroll;
    z-index: 1;
}

.slider-control {
    z-index: 2;
    position: absolute;
    top: 0;
    width: 12%;
    height: 100%;
    transition: opacity 0.3s;
    will-change: opacity;
    opacity: 0;
}

.slider-control.inactive:hover {
    cursor: auto;
}

.slider-control:not(.inactive):hover {
    opacity: 1;
    cursor: pointer;
}

.slider-control.left {
    left: 0;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0) 100%);
}

.slider-control.right {
    right: 0;
    background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.18) 100%);
}

.slider-pagi {
    position: absolute;
    z-index: 3;
    left: 50%;
    bottom: 2rem;
    transform: translateX(-50%);
    font-size: 0;
    list-style-type: none;
}

.slider-pagi__elem {
    position: relative;
    display: inline-block;
    vertical-align: top;
    width: 2rem;
    height: 2rem;
    margin: 0 0.5rem;
    border-radius: 50%;
    border: 2px solid #fff;
    cursor: pointer;
}

.slider-pagi__elem:before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 1.2rem;
    height: 1.2rem;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.3s;
    transform: translate(-50%, -50%) scale(0);
}

.slider-pagi__elem.active:before,
.slider-pagi__elem:hover:before {
    transform: translate(-50%, -50%) scale(1);
}

.slider {
    z-index: 1;
    position: relative;
    height: 100%;
}

.slider.animating {
    transition: transform 0.5s;
    will-change: transform;
}

.slider.animating .slide__bg {
    transition: transform 0.5s;
    will-change: transform;
}

.slide {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    /* transition-duration: 0.5s; */
}


/* .gachamask{
    opacity: 0.1;
  } */

.slide.active .slide__overlay,
.slide.active .slide__text {
    opacity: 1;
    transform: translateX(0);
}

.slide__bg {
    position: absolute;
    top: 0;
    left: -50%;
    width: 100%;
    height: 100%;
    background-size: cover;
    will-change: transform;
}


.slide__content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.slide__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 100%;
    min-height: 810px;
    transition: transform 0.5s 0.5s, opacity 0.2s 0.5s;
    will-change: transform, opacity;
    transform: translate3d(-20%, 0, 0);
    opacity: 0;
}

@media (max-width: 991px) {
    .slide__overlay {
        display: none;
    }
}

.slide__overlay path {
    opacity: 0.8;
    fill: #e99c7e;
}

.slide__text {
    position: absolute;
    /* width: 25%; */
    /*sliderの文字の範囲を狭める*/
    bottom: 15%;
    left: 12%;
    color: #fff;
    transition: transform 0.5s 0.8s, opacity 0.5s 0.8s;
    will-change: transform, opacity;
    transform: translateY(-50%);
    opacity: 0;
}

@media (max-width: 991px) {
    .slide__text {
        left: 0;
        bottom: 0;
        width: 100%;
        height: 40vh;
        text-align: center;
        transform: translateY(50%);
        transition: transform 0.5s 0.5s, opacity 0.5s 0.5s;
        padding: 0 1rem;
    }
}

.slide__text-heading {
    font-family: "Open Sans", Helvetica, Arial, sans-serif;
    /* font-family: 'Noto Serif JP', serif; */
    font-size: 5rem;
    margin-bottom: 2rem;
}

@media (max-width: 991px) {
    .slide__text-heading {
        line-height: 4rem;
        font-size: 3.5rem;
    }
}

.slide__text-desc {
    font-family: "Open Sans", Helvetica, Arial, sans-serif;
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 991px) {
    .slide__text-desc.omit {
        display: none;
    }
}

#gacha_result_img {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: 0;
    bottom: 0;
    height: 80%;
    width: auto;
}

@media (max-width: 991px) {
    #gacha_result_img {
        position: absolute;
        left: 0;
        right: 0;
        margin: auto;
        top: 0;
        bottom: 0;
        width: 80%;
        height: auto;
    }
}

#gacha_result_frame {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    top: 0;
    bottom: 0;
    height: 80%;
    width: auto;
}

@media (max-width: 991px) {
    #gacha_result_frame {
        position: absolute;
        left: 0;
        right: 0;
        margin: auto;
        top: 0;
        bottom: 0;
        width: 80%;
        height: auto;
    }
}


/*
  .slide__text-link {
    z-index: 5;
    display: inline-block;
    position: relative;
    padding: 0.5rem;
    cursor: pointer;
    font-family: "Open Sans", Helvetica, Arial, sans-serif;
    font-size: 2.3rem;
    perspective: 1000px;
  }
  @media (max-width: 991px) {
    .slide__text-link {
    }
  }
  .slide__text-link:before {
    z-index: -1;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    transform-origin: 50% 100%;
    transform: rotateX(-85deg);
    transition: transform 0.3s;
    will-change: transform;
  }
  .slide__text-link:hover:before {
    transform: rotateX(0);
  }
*/

.sampling_wrapper {
    overflow: hidden;
    width: 100%;
}

#solo-result {
    position: relative;
}

#solo-result:before {
    content: '';
    display: block;
    width: 100%;
    padding-top: 100%;
}

#resultimg-solo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}

#resultframe-solo {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
}

@keyframes transformYBanner {
    from {
        transform: translateY(100%);
    }
    to {
        transform: translateY(0);
    }
}

@keyframes transformY {
    from {
        transform: translateY(100px);
    }
    to {
        transform: translateY(0);
    }
}

@keyframes transformPicture {
    from {
        transform: translateY(-170px) scale(1.2);
        transform-origin: center;
    }
    to {
        transform: translateY(0) scale(1);
    }
}

@keyframes transformOverlay {
    from {
        transform: translateY(-100%);
    }
    to {
        transform: translateY(101%);
    }
}

@keyframes opacity {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.hero-picture {
    height: 50vh;
    width: 50vh;
    margin: auto auto;
    margin-top: 20px;
    position: relative;
    overflow: hidden;
    transition: all 800ms cubic-bezier(0.65, 0.05, 0.36, 1);
}

.hero-picture::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #1D1F1F;
    opacity: 1;
    z-index: 1;
    transform: translateX(101%);
    animation-name: opacity, transformOverlay;
    animation-duration: 300ms, 1400ms;
    animation-fill-mode: backwards;
    animation-timing-function: cubic-bezier(0.65, 0.05, 0.36, 1);
}

.picture {
    width: 100%;
    opacity: 1;
    animation-name: opacity, transformPicture;
    animation-duration: 1000ms, 1900ms;
    animation-fill-mode: backwards;
    animation-timing-function: cubic-bezier(0.65, 0.05, 0.36, 1);
}

.hero:hover .hero-picture {
    transform: scale(1.03);
}

.hero-1 .hero-picture::before {
    animation-delay: 900ms, 1000ms;
}

.hero-1 .picture {
    animation-delay: 1500ms, 700ms;
}

#tweet_btn,
#line_btn,
#back_button_solo,
#back_button_10,
#resampling_button_solo,
#back_button2{
    font-size: 16px;
    background: white;
    border-radius: 3px;
    opacity: 1;
}

/* 採ったあとに次やることのボタン。
   ログイン済みなら「バケツを見る」、未ログインなら「新規登録」になる(sampling.js)。
   白いボタンが並ぶと初めての人がどれを押せばいいか分からないので、
   ここだけ塗りつぶす。色は index.html の「はじめる」ボタンと同じオレンジ */
#back_button_solo.nextstep_btn,
#back_button_10.nextstep_btn,
#back_button_solo.nextstep_btn:focus,
#back_button_10.nextstep_btn:focus,
#back_button_solo.nextstep_btn:active,
#back_button_10.nextstep_btn:active {
    background: linear-gradient(to bottom, #ff8c00, #ff5a00);
    border-color: #ff5a00;
    color: #fff;
    font-weight: bold;
}

#back_button_solo.nextstep_btn:hover,
#back_button_10.nextstep_btn:hover {
    background: linear-gradient(to bottom, #ffaa00, #ff7700);
    color: #fff;
}

#resultsolo-name,
#resultsolo-name a {
    font-size: 22px;
    color: white;
    font-weight: bold;
    margin-bottom: 0px;
}

#resultsolo-species,
#resultsolo-species a {
    font-size: 16px;
    color: white;
    font-weight: bold;
    margin-bottom: 0px;
}

#resultsolo-taxon,
#resultsolo-taxon a {
    font-size: 16px;
    color: white;
    font-weight: bold;
    margin-top: 10px;
}

#resultsolo-description {
    font-size: 16px;
    color: white;
    font-weight: bold;
    margin-top: 0px;
    margin-bottom: 0px;
}

.smooth {
    clip-path: inset(0 100% 0 0);
    display: inline-block;
    font-size: 36px;
    font-weight: bold;
    transition: 0.7s cubic-bezier(0.37, 0, 0.63, 1);
    /*文字送りの速度*/
    transition-property: clip-path;
    line-height: 1;
    margin-top: 15px;
}

.smooth.is-animated {
    clip-path: inset(0);
}

.resultsolo-buttons {
    width: 100%;
    margin-left: 0px;
    margin-right: 0px;
    margin-top: 20px;
}

#ten_buttonsrow {
    position: absolute;
    /* top: 80%; */
    bottom: calc((var(--vh, 1vh) *100) * 0.1);
}

.bubbly-button {
    padding: 1rem 1.5rem;
    margin: 0rem 0.5rem;
}


/*
.slide-0 .bubbly-button {
    background-color: rgba(126, 203, 233, 1);
}
.slide-1 .bubbly-button {
    background-color: rgb( 174, 195, 225, 1);
}
.slide-2 .bubbly-button {
    background-color: rgb( 205, 181, 173, 1);
}
.slide-3 .bubbly-button {
    background-color: rgb( 195, 200, 203, 1);
}
.slide-4 .bubbly-button {
    background-color: rgb( 174, 195, 225, 1);
}
*/