@charset "UTF-8";
/* var(--vw) を使う clamp を生成 */
:root {
  --color-bg: #fff;
  --color-bg-rgb: 255, 255, 255;
  --color-gray: #F5F5F5;
  --color-footer-bg: #3788DE;
  --text-black:#101820;
  --main-gray-color:#E5E5E5;
  --color-primary:#3788DE;
  --color-secondary:#FFAB1A;
  --color-danger:#ff0000;
  --font-langJa:"Noto Sans JP",sans-serif;
  --font-langEn: "Poppins", sans-serif;
  --font-langNum: "Poppins", sans-serif;
  --pc-width:1400;
  --contents-width:1300;
  --contents-width-px:calc(var(--contents-width) * 1px);
  --radius-xs: 8px;
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 32px;
}

/**
*　じゃんけんタイトル部
*************/
.sec-game {
  padding: 208px 0 126px;
}
@media (max-width: 767px) {
  .sec-game {
    padding: 104px 0 63px;
  }
}

.sec-game02 {
  padding: 68px 0 126px;
}
@media (max-width: 767px) {
  .sec-game02 {
    padding: 45px 0 63px;
  }
}

.game-header {
  display: flex;
  gap: 0 75px;
}
@media (max-width: 960px) {
  .game-header {
    flex-direction: column;
    gap: 20px 0;
  }
}

.game-title {
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .c-title01.center.game-title01 {
    text-align: center;
  }
}

.janken__recommend {
  margin-top: 20px;
  padding: 0.5em 1em;
  display: flex;
  gap: 1em;
  background: #FFFFFF;
  border: 1px solid #000000;
  font-size: 13px;
}
@media (max-width: 767px) {
  .janken__recommend {
    margin-left: auto;
    margin-right: auto;
    width: 92%;
  }
}
.janken__recommend dt {
  flex-shrink: 0;
}

/**
*　じゃんけんの中身
*************/
.janken-box {
  position: relative;
  padding-top: calc(129 / var(--width) * 100%);
  padding-bottom: calc(129 / var(--width) * 100%);
}
@media (max-width: 767px) {
  .janken-box {
    padding-top: calc(60 / var(--width) * 100%);
    padding-bottom: calc(60 / var(--width) * 100%);
  }
}
.janken-box::before {
  content: "";
  display: block;
  padding-top: 55px;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  background: url(../img/game/janken/bg_star.jpg);
  background-size: 10%;
  -webkit-mask-image: linear-gradient(#fff, #fff), url(../img/common/top_wave.svg), url(../img/common/bottom_wave.svg);
  -webkit-mask-repeat: no-repeat, no-repeat, no-repeat;
  -webkit-mask-position: 0 0, top center, bottom -1px center;
  -webkit-mask-size: 100% 100%, 100% auto, 100% auto;
  -webkit-mask-composite: source-out;
  mask-image: linear-gradient(#fff, #fff), url(../img/common/top_wave.svg), url(../img/common/bottom_wave.svg);
  mask-repeat: no-repeat, no-repeat, no-repeat;
  mask-position: 0 0, top center, bottom -1px center;
  mask-size: 100% 100%, 100% auto, 100% auto;
  -webkit-mask-composite: xor;
          mask-composite: exclude;
}
@media (max-width: 767px) {
  .janken-box::before {
    background-size: 20%;
    -webkit-mask-image: linear-gradient(#fff, #fff), url(../img/common/top_wave_sp.svg), url(../img/common/bottom_wave_sp.svg);
    mask-image: linear-gradient(#fff, #fff), url(../img/common/top_wave_sp.svg), url(../img/common/bottom_wave_sp.svg);
  }
}

.janken {
  position: relative;
  margin-top: 20px;
  padding-top: 20px;
  padding-bottom: 30px;
  --frameWidth:384;
}
@media (max-width: 767px) {
  .janken {
    padding-left: 2%;
    padding-right: 2%;
  }
}

.janken__overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(0, 0, 0, 0.55);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.35s ease, visibility 0.35s ease;
  z-index: 10;
}

.janken__startBtn {
  -webkit-animation: startPulse 1.2s ease-in-out infinite;
          animation: startPulse 1.2s ease-in-out infinite;
}

/* overlay → idle でオーバーレイ消す */
.janken[data-state=idle] .janken__overlay,
.janken[data-state=play] .janken__overlay,
.janken[data-state=result] .janken__overlay {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* コンテンツ表示 */
.janken__stage .janken__frame--in {
  position: relative;
  display: none;
  width: 100%;
  height: 100%;
}

.janken:not([data-state]) .janken__frame--in.stage-idle,
.janken[data-state=overlay] .janken__frame--in.stage-idle,
.janken[data-state=idle] .janken__frame--in.stage-idle {
  display: block;
}
.janken:not([data-state]) .lerch,
.janken[data-state=overlay] .lerch,
.janken[data-state=idle] .lerch {
  position: absolute;
  top: -32px;
  left: -22px;
  width: 112%;
  z-index: 1;
  aspect-ratio: 433/356;
}
.janken:not([data-state]) .fukidashi,
.janken[data-state=overlay] .fukidashi,
.janken[data-state=idle] .fukidashi {
  position: absolute;
  z-index: 2;
  right: -6%;
  top: 8%;
  width: calc(257 / var(--frameWidth) * 100%);
  aspect-ratio: 193/150;
}
.janken:not([data-state]) .fukidashi img,
.janken[data-state=overlay] .fukidashi img,
.janken[data-state=idle] .fukidashi img {
  width: 100%;
  height: auto;
}
.janken:not([data-state]) .hand,
.janken[data-state=overlay] .hand,
.janken[data-state=idle] .hand {
  position: absolute;
  left: 5%;
  bottom: 0;
  z-index: 0;
}
.janken:not([data-state]) .hand img,
.janken[data-state=overlay] .hand img,
.janken[data-state=idle] .hand img {
  width: 100%;
  height: auto;
}

/* 選択中　*/
@-webkit-keyframes idleFukidashi {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.15);
  }
  70% {
    transform: scale(0.8);
  }
  75% {
    transform: scale(1.35);
  }
  80% {
    transform: scale(0.9);
  }
  90% {
    transform: scale(1.25);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes idleFukidashi {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.15);
  }
  70% {
    transform: scale(0.8);
  }
  75% {
    transform: scale(1.35);
  }
  80% {
    transform: scale(0.9);
  }
  90% {
    transform: scale(1.25);
  }
  100% {
    transform: scale(1);
  }
}
@-webkit-keyframes idleHand {
  0% {
    transform: translateX(-5px);
  }
  50% {
    transform: translate(80px, 50px) rotate(10deg);
  }
  100% {
    transform: translateX(-5px);
  }
}
@keyframes idleHand {
  0% {
    transform: translateX(-5px);
  }
  50% {
    transform: translate(80px, 50px) rotate(10deg);
  }
  100% {
    transform: translateX(-5px);
  }
}
@-webkit-keyframes idleLerch {
  0% {
    transform: translateY(-5px);
  }
  50% {
    transform: translate(0, 30px) rotate(2deg);
  }
  100% {
    transform: translateY(-5px);
  }
}
@keyframes idleLerch {
  0% {
    transform: translateY(-5px);
  }
  50% {
    transform: translate(0, 30px) rotate(2deg);
  }
  100% {
    transform: translateY(-5px);
  }
}
.janken[data-state=idle] .hand {
  -webkit-animation: idleHand 1.2s ease-in-out infinite;
          animation: idleHand 1.2s ease-in-out infinite;
}
.janken[data-state=idle] .fukidashi {
  -webkit-animation: idleFukidashi 1.2s ease-in-out infinite;
          animation: idleFukidashi 1.2s ease-in-out infinite;
}
.janken[data-state=idle] .lerch {
  -webkit-animation: idleLerch 1.2s ease-in-out infinite;
          animation: idleLerch 1.2s ease-in-out infinite;
}

/* じゃんけんアニメ初回 or もう一度*/
@-webkit-keyframes text_step {
  0% {
    background-position: 0 100%;
  } /* 4 */
  10% {
    background-position: 0 0%;
  } /* 1 */
  20% {
    background-position: 0 100%;
  } /* 4 */
  35% {
    background-position: 0 33.333%;
  } /* 2 */
  50% {
    background-position: 0 100%;
  } /* 4 */
  65% {
    background-position: 0 66.666%;
  } /* 3 */
  100% {
    background-position: 0 66.666%;
  } /* 3 */
}
@keyframes text_step {
  0% {
    background-position: 0 100%;
  } /* 4 */
  10% {
    background-position: 0 0%;
  } /* 1 */
  20% {
    background-position: 0 100%;
  } /* 4 */
  35% {
    background-position: 0 33.333%;
  } /* 2 */
  50% {
    background-position: 0 100%;
  } /* 4 */
  65% {
    background-position: 0 66.666%;
  } /* 3 */
  100% {
    background-position: 0 66.666%;
  } /* 3 */
}
@-webkit-keyframes playYourHand {
  0% {
    transform: rotate(-5deg);
  }
  10% {
    transform: rotate(20deg);
  }
  35% {
    transform: rotate(-5deg);
  }
  50% {
    transform: rotate(20deg);
  }
  75% {
    transform: rotate(-40deg);
  }
  100% {
    transform: rotate(2deg);
  }
}
@keyframes playYourHand {
  0% {
    transform: rotate(-5deg);
  }
  10% {
    transform: rotate(20deg);
  }
  35% {
    transform: rotate(-5deg);
  }
  50% {
    transform: rotate(20deg);
  }
  75% {
    transform: rotate(-40deg);
  }
  100% {
    transform: rotate(2deg);
  }
}
@-webkit-keyframes playCpuHand {
  0% {
    transform: rotate(5deg);
  }
  10% {
    transform: rotate(-20deg);
  }
  35% {
    transform: rotate(5deg);
  }
  50% {
    transform: rotate(-20deg);
  }
  75% {
    transform: rotate(40deg);
  }
  100% {
    transform: rotate(-2deg);
  }
}
@keyframes playCpuHand {
  0% {
    transform: rotate(5deg);
  }
  10% {
    transform: rotate(-20deg);
  }
  35% {
    transform: rotate(5deg);
  }
  50% {
    transform: rotate(-20deg);
  }
  75% {
    transform: rotate(40deg);
  }
  100% {
    transform: rotate(-2deg);
  }
}
.janken[data-state=play] .janken__frame--in.stage-play__nomal {
  display: block;
}
.janken[data-state=play] .janken__hand--you {
  position: absolute;
  top: auto;
  left: -95%;
  bottom: -120%;
  aspect-ratio: 554/516;
  width: calc(554 / var(--frameWidth) * 100%);
  -webkit-animation: playYourHand 2.5s ease-in-out forwards;
          animation: playYourHand 2.5s ease-in-out forwards;
}
.janken[data-state=play] .janken__hand--cpu {
  position: absolute;
  top: auto;
  right: -83%;
  bottom: -109%;
  aspect-ratio: 554/516;
  width: calc(536 / var(--frameWidth) * 100%);
  -webkit-animation: playCpuHand 2.5s ease-in-out forwards;
          animation: playCpuHand 2.5s ease-in-out forwards;
}
.janken[data-state=play] .janken__aizu {
  position: absolute;
  top: 1.5%;
  left: 50%;
  transform: translateX(-50%);
  width: calc(269 / var(--frameWidth) * 100%);
  aspect-ratio: 269/119;
  background: url(../img/game/janken/play_text_nomal.svg) no-repeat 0 0;
  -webkit-animation: text_step 3.75s steps(1) forwards;
          animation: text_step 3.75s steps(1) forwards;
  background-size: auto 400%;
}

/* じゃんけんアニメあいこ */
.janken[data-state=play][data-rematch="1"] .janken__aizu {
  background-image: url(../img/game/janken/play_text_draw.svg);
}

/* じゃんけん結果　勝ち */
@-webkit-keyframes resltWinStar {
  0% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(90deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
@keyframes resltWinStar {
  0% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(90deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
@-webkit-keyframes resltWinStarReverse {
  0% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(-90deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
@keyframes resltWinStarReverse {
  0% {
    transform: rotate(0);
  }
  50% {
    transform: rotate(-90deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
@-webkit-keyframes resltWinFukidashi {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes resltWinFukidashi {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
.janken[data-state=result][data-result=win] .janken__frame--in.stage-result__win {
  display: block;
}
.janken[data-state=result][data-result=win] .star {
  position: absolute;
  width: calc(72 / var(--frameWidth) * 100%);
  aspect-ratio: 1/1;
  -webkit-animation: resltWinStar 1.5s steps(1) infinite;
          animation: resltWinStar 1.5s steps(1) infinite;
}
.janken[data-state=result][data-result=win] .star01 {
  left: 0.5%;
  top: 0%;
}
.janken[data-state=result][data-result=win] .star02 {
  position: absolute;
  left: 5%;
  bottom: 0;
  -webkit-animation-name: resltWinStarReverse;
          animation-name: resltWinStarReverse;
}
.janken[data-state=result][data-result=win] .star03 {
  right: 0;
  top: 9%;
}
.janken[data-state=result][data-result=win] .lerch {
  position: relative;
  z-index: 2;
}
.janken[data-state=result][data-result=win] .fukidashi {
  position: absolute;
  left: 2.5%;
  top: 0;
  width: calc(340 / var(--frameWidth) * 100%);
  aspect-ratio: 340/252;
  -webkit-animation: resltWinFukidashi 1.2s ease-in-out infinite;
          animation: resltWinFukidashi 1.2s ease-in-out infinite;
}
.janken[data-state=result][data-result=win] .fukidashi img {
  width: 100%;
  height: auto;
}

/* じゃんけん結果　負け */
@-webkit-keyframes resltLoseFukidashi {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes resltLoseFukidashi {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
@-webkit-keyframes resltLoseOnpu {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 0 100%;
  }
}
@keyframes resltLoseOnpu {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 0 100%;
  }
}
.janken[data-state=result][data-result=lose] .janken__frame--in.stage-result__lose {
  display: block;
}
.janken[data-state=result][data-result=lose] .title {
  position: absolute;
  left: 50%;
  top: 9.5%;
  transform: translateX(-50%);
  width: calc(340 / var(--frameWidth) * 100%);
}
.janken[data-state=result][data-result=lose] .title img {
  width: 100%;
}
.janken[data-state=result][data-result=lose] .lerch {
  position: relative;
  z-index: 2;
}
.janken[data-state=result][data-result=lose] .onpu {
  position: absolute;
  right: 0;
  top: 37%;
  width: calc(70 / var(--frameWidth) * 100%);
  aspect-ratio: 1/1;
  background: url(../img/game/janken/onpu.png) no-repeat 0 0/100% 200%;
  -webkit-animation: resltLoseOnpu 2s steps(1) infinite;
          animation: resltLoseOnpu 2s steps(1) infinite;
}
.janken[data-state=result][data-result=lose] .fukidashi {
  position: absolute;
  left: 2%;
  top: 34%;
  width: calc(229 / var(--frameWidth) * 100%);
  aspect-ratio: 229/143;
  -webkit-animation: resltLoseFukidashi 1.2s ease-in-out infinite;
          animation: resltLoseFukidashi 1.2s ease-in-out infinite;
}
.janken[data-state=result][data-result=lose] .fukidashi img {
  width: 100%;
  height: auto;
}

/* じゃんけん結果　あいこ */
@-webkit-keyframes resltDrawFukidashi {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.25);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes resltDrawFukidashi {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.25);
  }
  100% {
    transform: scale(1);
  }
}
.janken[data-state=result][data-result=draw] .janken__frame--in.stage-result__draw {
  display: block;
}
.janken[data-state=result][data-result=draw] .lerch {
  position: relative;
  z-index: 2;
}
.janken[data-state=result][data-result=draw] .title {
  position: absolute;
  left: 28%;
  top: 8%;
  width: calc(221 / var(--frameWidth) * 100%);
}
.janken[data-state=result][data-result=draw] .fukidashi {
  position: absolute;
  left: 1%;
  bottom: 6%;
  width: calc(367 / var(--frameWidth) * 100%);
  aspect-ratio: 367/197;
  text-align: center;
  -webkit-animation: resltDrawFukidashi 1.2s ease-in-out infinite;
          animation: resltDrawFukidashi 1.2s ease-in-out infinite;
}
.janken[data-state=result][data-result=draw] .fukidashi img {
  width: 100%;
  height: auto;
}

@-webkit-keyframes kazari_gu {
  0% {
    background-position: 0 0;
  }
  33% {
    background-position: 50% 0;
  }
  66% {
    background-position: 100% 0;
  }
}

@keyframes kazari_gu {
  0% {
    background-position: 0 0;
  }
  33% {
    background-position: 50% 0;
  }
  66% {
    background-position: 100% 0;
  }
}
@-webkit-keyframes kazari_choki {
  0% {
    background-position: 50% 0;
  }
  33% {
    background-position: 100% 0;
  }
  66% {
    background-position: 0 0;
  }
}
@keyframes kazari_choki {
  0% {
    background-position: 50% 0;
  }
  33% {
    background-position: 100% 0;
  }
  66% {
    background-position: 0 0;
  }
}
@-webkit-keyframes kazari_pa {
  0% {
    background-position: 100% 0;
  }
  33% {
    background-position: 0 0;
  }
  66% {
    background-position: 50% 0;
  }
}
@keyframes kazari_pa {
  0% {
    background-position: 100% 0;
  }
  33% {
    background-position: 0 0;
  }
  66% {
    background-position: 50% 0;
  }
}
@-webkit-keyframes kazari_lerch {
  0% {
    transform: rotate(-25deg);
  }
  50% {
    transform: rotate(15deg);
  }
  100% {
    transform: rotate(-25deg);
  }
}
@keyframes kazari_lerch {
  0% {
    transform: rotate(-25deg);
  }
  50% {
    transform: rotate(15deg);
  }
  100% {
    transform: rotate(-25deg);
  }
}
.janken-title {
  position: relative;
  margin: -5% auto 0;
  width: 85%;
  max-width: 794px;
}
@media (max-width: 767px) {
  .janken-title {
    margin: -10% auto 0;
    width: 94%;
    left: 0%;
  }
}
.janken-title img {
  width: 100%;
}

.janken-title__kazari {
  position: absolute;
  top: -61%;
  right: -18px;
  display: block;
  aspect-ratio: 1/1;
  width: 194px;
}
@media screen and (min-width: 768px) and (max-width: 890px) {
  .janken-title__kazari {
    top: -80%;
  }
}
@media (max-width: 767px) {
  .janken-title__kazari {
    top: -53%;
    right: -4%;
    width: 46%;
  }
}
.janken-title__kazari .gu, .janken-title__kazari .choki, .janken-title__kazari .pa {
  display: block;
  width: 35.2941176471%;
  overflow: hidden;
  aspect-ratio: 1/1;
  background: url(../img/game/janken/title_kazari_hands.svg) no-repeat 0 0;
  -webkit-animation: kazari_gu 3s steps(1) infinite;
          animation: kazari_gu 3s steps(1) infinite;
  background-size: 300% auto;
}
@media (max-width: 767px) {
  .janken-title__kazari .gu, .janken-title__kazari .choki, .janken-title__kazari .pa {
    width: 28%;
  }
}
.janken-title__kazari .gu {
  position: absolute;
  top: 48px;
  left: -16px;
}
@media (max-width: 767px) {
  .janken-title__kazari .gu {
    top: 19.5%;
    left: -6.5%;
  }
}
.janken-title__kazari .choki {
  position: absolute;
  -webkit-animation-name: kazari_choki;
          animation-name: kazari_choki;
  right: -6px;
  top: auto;
  bottom: 30px;
}
@media (max-width: 767px) {
  .janken-title__kazari .choki {
    right: 17%;
    bottom: auto;
    top: 40%;
  }
}
.janken-title__kazari .pa {
  position: absolute;
  left: -13px;
  bottom: 0;
  -webkit-animation-name: kazari_pa;
          animation-name: kazari_pa;
}
@media (max-width: 767px) {
  .janken-title__kazari .pa {
    left: -4%;
    bottom: 18%;
  }
}
.janken-title__kazari .lerch {
  display: block;
  width: 96.5%;
  aspect-ratio: 106/111;
  -webkit-animation: kazari_lerch 1.5s linear infinite;
          animation: kazari_lerch 1.5s linear infinite;
}
@media (max-width: 767px) {
  .janken-title__kazari .lerch {
    width: 77.9411764706%;
  }
}
.janken-title__kazari .lerch img {
  width: 100%;
  height: auto;
}

.janken-lead {
  margin: 30px auto 0;
  width: 96%;
  max-width: 557px;
}
@media (max-width: 767px) {
  .janken-lead {
    width: 92%;
  }
}
.janken-lead img {
  width: 100%;
}

.janken__message {
  margin: 20px auto 0;
  width: 96%;
  text-align: center;
}

.janken__message img {
  display: block;
  width: 100%;
  height: auto;
}

.janken__frame {
  margin: 0 auto 0;
  width: 96%;
  background-color: #fff;
  border: 3px solid #000;
  border-radius: 8px;
  aspect-ratio: 384/275;
  overflow: hidden;
}
@media (max-width: 767px) {
  .janken__frame {
    width: 100%;
  }
}

.janken__hands {
  position: relative;
}

.janken__choices {
  display: flex;
  margin: 15px auto 0;
  width: 96%;
  gap: 0 4%;
}
.janken__choices > * {
  width: 30%;
}
.janken__choices > * img {
  width: 100%;
}

/* 初期は全部非表示にして分岐で出す */
.janken__choiceImg {
  display: none;
  width: 100%;
  height: auto;
}

/* idle：idle画像 */
@-webkit-keyframes idle_button {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 100% 0;
  }
}
@keyframes idle_button {
  0% {
    background-position: 0 0;
  }
  50% {
    background-position: 100% 0;
  }
}
.janken[data-state=overlay] .janken__choiceImg--idle,
.janken[data-state=idle] .janken__choiceImg--idle {
  display: block;
  aspect-ratio: 1/1;
  background: url(../img/game/janken/idle_gu.svg) no-repeat 0 0;
  background-size: 200% auto;
}

.janken[data-state=idle] .janken__choiceImg--idle {
  -webkit-animation: idle_button 2s steps(1) infinite;
          animation: idle_button 2s steps(1) infinite;
}

.janken[data-state=overlay] button[data-hand=scissors] .janken__choiceImg--idle,
.janken[data-state=idle] button[data-hand=scissors] .janken__choiceImg--idle {
  background-image: url(../img/game/janken/idle_choki.svg);
}

.janken[data-state=overlay] button[data-hand=paper] .janken__choiceImg--idle,
.janken[data-state=idle] button[data-hand=paper] .janken__choiceImg--idle {
  background-image: url(../img/game/janken/idle_pa.svg);
}

/* play：未選択は unselected画像 */
.janken[data-state=play] .janken__choiceImg--playUnsel {
  display: block;
}

/* play：選択済みだけ selected画像に差し替え */
.janken[data-state=play] .janken__choice.is-selected .janken__choiceImg--playUnsel {
  display: none;
}

.janken[data-state=play] .janken__choice.is-selected .janken__choiceImg--playSel {
  display: block;
}

/* play：全ボタンは未選択画像 */
.janken[data-state=play] .janken__choiceImg--playUnsel {
  display: block;
}

/* play：選択した手だけ selected画像に差し替え（data-user-handで判定） */
.janken[data-state=play][data-user-hand=rock] button[data-hand=rock] .janken__choiceImg--playUnsel,
.janken[data-state=play][data-user-hand=scissors] button[data-hand=scissors] .janken__choiceImg--playUnsel,
.janken[data-state=play][data-user-hand=paper] button[data-hand=paper] .janken__choiceImg--playUnsel {
  display: none;
}

.janken[data-state=play][data-user-hand=rock] button[data-hand=rock] .janken__choiceImg--playSel,
.janken[data-state=play][data-user-hand=scissors] button[data-hand=scissors] .janken__choiceImg--playSel,
.janken[data-state=play][data-user-hand=paper] button[data-hand=paper] .janken__choiceImg--playSel {
  display: block;
}

/* play中はクリック禁止（連打防止） */
.janken[data-state=play] .janken__choice {
  pointer-events: none;
}

/* 結果あいこはそのままもう一度*/
.janken[data-state=result][data-result=draw] {
  display: block;
}

.janken[data-state=result][data-result=draw] .janken__choiceImg.janken__choiceImg--idle {
  display: block;
  aspect-ratio: 1/1;
  background: url(../img/game/janken/idle_gu.svg) no-repeat 0 0;
  background-size: 200% auto;
  -webkit-animation: idle_button 2s steps(1) infinite;
          animation: idle_button 2s steps(1) infinite;
}

.janken[data-state=result][data-result=draw] button[data-hand=scissors] .janken__choiceImg--idle {
  background-image: url(../img/game/janken/idle_choki.svg);
}

.janken[data-state=result][data-result=draw] button[data-hand=paper] .janken__choiceImg--idle {
  background-image: url(../img/game/janken/idle_pa.svg);
}

.resultButton__wrap {
  text-align: center;
}

.janken__retry {
  width: calc(325 / var(--frameWidth) * 100%);
}
.janken__retry img {
  width: 100%;
}

.janken__prize {
  width: calc(325 / var(--frameWidth) * 100%);
}
@media (min-width: 961px) {
  .janken__prize {
    display: none;
  }
}

.qr_prize {
  display: none;
  font-size: 14px;
  text-align: center;
}
.qr_prize.is-show {
  display: block;
}
.qr_prize img {
  margin: 20px auto 0;
  width: 150px;
}
@media (max-width: 960px) {
  .qr_prize {
    display: none !important;
  }
}

.prize-step {
  margin: 90px auto 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  justify-content: center;
  gap: 0 6%;
  max-width: 914px;
  width: 92%;
}
@media (max-width: 767px) {
  .prize-step {
    margin-top: 40px;
    grid-template-columns: 1fr;
    gap: 30px 0;
  }
}

.prize-step__row {
  position: relative;
  display: flex;
  align-items: center;
  flex-direction: column;
}
@media (max-width: 767px) {
  .prize-step__row {
    flex-direction: row;
  }
}
.prize-step__row:not(:last-child)::after {
  position: absolute;
  right: -40%;
  top: 44%;
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background: url(../img/game/janken/after_step_arrow.svg) no-repeat center/contain;
  transform: rotate(-90deg) translateY(-50%);
}
@media (max-width: 767px) {
  .prize-step__row:not(:last-child)::after {
    right: auto;
    left: 50%;
    top: auto;
    bottom: -43%;
    transform: rotate(0deg) translateX(-50%);
  }
}

.prize-step__num {
  display: inline-block;
  font-size: 42px;
  color: #fff;
  width: 1em;
}

.prize-step__icon {
  width: 72px;
}
@media (max-width: 767px) {
  .prize-step__icon {
    width: 50px;
  }
}
.prize-step__icon img {
  width: 100%;
}

.prize-step__text {
  margin-top: 1em;
  font-size: clamp(15px, 1.29vw, 18px);
  font-weight: 700;
  line-height: 140%;
  text-align: center;
  letter-spacing: -0.056em;
}
@media (max-width: 767px) {
  .prize-step__text {
    margin-top: 0;
    margin-left: 1em;
    text-align: left;
    font-size: 18px;
  }
}

.prize-text {
  margin: 72px auto 0;
  width: 77%;
}
@media (max-width: 767px) {
  .prize-text {
    margin-top: 40px;
    width: 100%;
  }
}

.prize-list {
  margin-top: 1em;
}
.prize-list li {
  position: relative;
  position: relative;
  padding-left: 1em;
}
.prize-list li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
}