@charset "UTF-8";

#rule{
    width: 100%;
    display: flex;
    filter: drop-shadow(2px 4px 16px #333);
    font-family: 'Noto Sans Japanese', sans-serif;
}


/***********************************************************************
「★PC版 CSS★」ブラウザの幅が751px以上ならここの記述が有効になる
  **********************************************************************/
@media all and (min-width: 751px) {
.pc_non {
    display: none;
}

#rule {
  width: 100%;
  height: 2502px;
  display: flex;
  position: relative;      /* 擬似要素の基準にする */
  margin-top: -140px;
  overflow: hidden;        /* はみ出し防止 */
  z-index: 1;
  margin-bottom: -210px;
}

/* 背景専用レイヤー */
#rule::before {
  content: "";
  position: absolute;
  top: -91px;              /* 傾きで切れないよう余白を広めに */
  left: -46%;
  width: 160%;
  height: 100%;
  /* background: #FFDD02; */
  background: radial-gradient(
    ellipse 80% 120% at 50% 40%, /* 横:80% 縦:120% の楕円 */
    #FFDD02 10%,   /* 中央色 */
    #FCA800 100%  /* 外側色 */
  );
  transform: translateX(10%) rotate(-5deg); /* 中央基準に移動してから回転 */
  transform-origin: center center;
  z-index: 0;              /* 一番下に置く */
}

/* 中のコンテンツは通常通り */
#rule > * {
  position: relative;
  z-index: 1;
}

  .rule {
    text-align: center;
    padding-top: 130px;
  }
  #rule::after {
    content: "";
    position: absolute;
    top: -5px;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/rule_titbg_pc.png) no-repeat top center;
    z-index: 0;
  }

  .rule_bg {
    width: 100%;
    height: 100%;
    position: absolute !important;
    text-align: center;
    top: 530px;
  }

  .rule_title {
    width: 605px;
    height: 170px;
    margin: 0 auto;
    position: relative;
  }

  .rule .lead {
    width: 1920px;
    height: 391px;
    margin: 0 auto;
    background: url(../images/rule_read_pc.png)no-repeat top center;
    position: relative;
    top: -38px;
  }
  .rule .lead p {
    width: 1500px;
    margin: 0 auto;
    color: #FFD302;
    font-size: 22px;
    font-weight: bold;
    line-height: 36px;
    text-align: center;
    padding-top: 108px;
  }
  .rule_h2{
    width: 1500px;
    height: 46px;
    margin: -54px auto 0;
  }

  .rule .rule_huki {
    background: url(../images/rule_huki.png) no-repeat center center;
    width: 330px;
    height: 116px;
    margin: 0 auto;
    position: absolute;
    top: -126px;
    left: 0;
    animation: twitchY 3.5s infinite; 
  }

  .rule .day-box{
    background: #fff;
    width: 1500px;
    margin: 0 auto;
  }
  .rule .day-box.show {
    animation: fadeUp 1s .5s forwards;
  }

  .rule .day01 { height: 193px; position: relative; }
  .rule .day02 { height: 160px; position: relative; }
  .rule .day03 { height: 305px; position: relative; }

  .day1_pc, .day2_pc, .day3_pc {
    margin: 0 auto;
    width: 1420px;
  }
  .day1_pc img, .day2_pc img {
    margin-top: 22px;
  }
  .day3_pc img {
    margin-top: 20px;
  }
  .day1_sp { height: 230px;}
  .day2_sp { height: 380px;}
  .day3_sp { height: 788px;}

  .day0-1, .day1-2, .day2-3, .day3-win {
    width: 1500px;
    margin: 0 auto;
  }
  .day0-1 {
    height: 178px;
  }
  .day1-2 {
    height: 220px;
  }
  .day2-3 {
    height: 160px;
  }
  .day3-win {
    height: 130px;
  }
  

  .rule .day-box.day02 .flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 0 18px;
  }
  .rule .day-box.day02 .flex {
    width: 340px;
    box-sizing: border-box;
    padding: 200px 0 0 0;
  }
  .rule .day-box .daybox__bg {
    position: absolute;
    padding-top: 120px;
  }
  .rule .day-box .day-box__ttl {
    text-align: center;
  }
  .rule .day-box .day-box__ttl.show {
    animation: bounceIn 1s forwards;
  }
  .rule .day-box li {
    margin-bottom: 20px;
  }

  .rule .winner {
    width: 1500px;
    height: 520px;
    margin: 0 auto;
    position: relative;
    top: -130px;
    z-index: -1;
    display: flex;
    justify-content: center;
    /* overflow: hidden; */
    overflow-y: hidden;
  }
  .rule .winner .winner_img {
    position: absolute;
    top: 47px;
    z-index: 1;
  }
  .rule .win_bg {
    width: 1500px;
    height: 262px;
    margin: 0 auto;
    background: url(../images/win_bg_pc.png) no-repeat top center;
    position: relative;
    z-index: 0;
    top: 260px;
  }
  .rule .winner .roll {
    position: absolute;
    top: -190px;
    left: 270px;
    background: url(../images/winner_back_pc.png) no-repeat center center;
    width: 968px;
    height: 968px;
    z-index: -3;
    animation: spin 30s linear infinite;
  }


}

/***********************************************************************
「★SP版 CSS★」ブラウザの幅が751px以上ならここの記述が有効になる
  **********************************************************************/
@media all and (max-width: 750px) {
.sp_non {
    display: none;
}

#rule {
  width: 750px;
  height: 3560px;
  display: flex;
  position: relative;      /* 擬似要素の基準にする */
  margin-top: -100px;
  overflow: hidden;        /* はみ出し防止 */
}

/* 背景専用レイヤー */
#rule::before {
  content: "";
  position: absolute;
  top: -50px;
  left: -40%;
  width: 160%;
  height: 100%;
  /* background: #FFDD02; */
  background: radial-gradient(
    ellipse 80% 120% at 50% 40%, /* 横:80% 縦:120% の楕円 */
    #FFDD02 10%,   /* 中央色 */
    #FCA800 100%  /* 外側色 */
  );

  transform: translateX(10%) rotate(-5deg); /* 中央基準に移動してから回転 */
  transform-origin: center center;
  z-index: 0;              /* 一番下に置く */
}

/* 中のコンテンツは通常通り */
#rule > * {
  position: relative;
  z-index: 1;
}


  .rule {
    text-align: center;
    padding-top: 60px;
  }
  .rule_title {
    width: 692px;
    height: 195px;
    margin: 27px auto 12px;
  }
  .rule_title::after {
    content: "";
    position: absolute;
    top: -65px;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../images/rule_titbg_sp.png) no-repeat top center;
    z-index: -1;

  }

  .rule .lead {
    width: 750px;
    height: 540px;
    margin: 0 auto;
    background: url(../images/rule_read_sp.png)no-repeat top center;
  }
  .rule .lead p {
    width: 750px;
    margin: 0 auto;
    color: #FFD302;
    font-size: 30px;
    font-weight: bold;
    line-height: 46px;
    text-align: center;
    padding-top: 74px;
  }
  .rule_h2{
    width: 500px;
    height: 55px;
    margin: 10px auto 20px;
  }

  .rule .day-box{
    background: #fff;
    width: 692px;
    margin: 0 auto;
  }
  .rule .day-box.show {
    animation: fadeUp 1s .5s forwards;
  }

  .rule .day01 { height: 280px; }
  .rule .day02 { height: 430px; }
  .rule .day03 { height: 838px; }

  .day1_sp, .day2_sp, .day3_sp {
    margin: 0 auto;
    width: 630px;
  }
  .day1_sp img, .day2_sp img, .day3_sp img {
    margin-top: 20px;
  }
  .day1_sp { height: 230px;}
  .day2_sp { height: 380px;}
  .day3_sp { height: 788px;}

  .day1-2, .day2-3, .day3-win {
    width: 630px;
    margin: 0 auto;
  }
  .day1-2 {
    width: 452px;
    height: 139px;
  }
  .day2-3 {
    width: 452px;
    height: 125px;
  }
  .day3-win {
    width: 380px;
    height: 180px;
  }
  

  .rule .day-box.day02 .flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 0 18px;
  }
  .rule .day-box.day02 .flex {
    width: 340px;
    box-sizing: border-box;
    padding: 200px 0 0 0;
  }
  .rule .day-box .daybox__bg {
    position: absolute;
    padding-top: 120px;
  }
  .rule .day-box .day-box__ttl {
    text-align: center;
  }
  .rule .day-box .day-box__ttl.show {
    animation: bounceIn 1s forwards;
  }
  .rule .day-box li {
    margin-bottom: 20px;
  }

  .rule .winner {
    width: 750px;
    height: 876px;
    margin: 0 auto;
    position: relative;
    top: -300px;
    z-index: -1;
    justify-content: center;
    overflow: hidden;

  }
  .rule .winner .winner_img {
    position: relative;
    top: 100px;
    left: -80px;
  }

  .rule .win_bg {
    width: 750px;
    height: 365px;
    margin: 0 auto;
    background: url(../images/win_bg_sp.png) no-repeat top center;
    position: relative;
    z-index: -1;
    bottom: 115px;
  }
  .rule .winner .roll {
    position: absolute;
    top: -30px;
    left: -120px;
    background: url(../images/winner_back_sp.png) no-repeat center center;
    width: 968px;
    height: 968px;
    z-index: -2;
    animation: spin 30s linear infinite;
  }



}

/***********************************************************************
  keyframe
**********************************************************************/
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}