@font-face{
	font-family: "line-font";
	src: url("../font/LINESeedJP_OTF_Rg.woff");
	font-weight: 400;
}

@font-face{
	font-family: "line-font";
	src:url("../font/LINESeedJP_OTF_Bd.woff");
	font-weight: 700;
}

@font-face{
	font-family: "line-font";
	src:url("../font/LINESeedJP_OTF_Eb.woff");
	font-weight: 900;
}

@font-face{
    font-family: "ff-good-headline-web-pro-ext", sans-serif;
    font-weight: 700;
    font-style: normal;
}


html, body {
  overscroll-behavior-y: none;
}

html{
	  scroll-behavior: smooth;
    font-size: 10px;
}

body{
    background-color: #000;
    background-attachment: fixed;
    
    scroll-behavior: smooth;
    /*background-repeat: no-repeat;*/
    
    font-family: "line-font";
    font-size:1.6rem;

    background-color: #c41e1e;
    opacity: 1;

}
a:hover{
    opacity: 0.7;
}
    

#root{
    width: 100%;
    /*background-color: #000;*/

}

#page{
    width: 100%;
    max-width: 1410px;
    margin: 0 auto;
    background-image: url("../images/common/dot_ptn.jpg");
    box-shadow: 0px 0px 15px #000000bf;
    background-size: 71px 94px;
    animation: moveBg 20s linear infinite;
}

#header{
    
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 1rem;
    display: flex;
    justify-content:left;
    position: fixed;
    z-index: 300;
}

#main_container{
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#main_visual{
    width: 100%;
    height: min(calc(100vw / 1440 * 880), 880px);
}

#main_visual_tate{
    display: none;
}

#main_logo_box{
    position: absolute;
    top: min(100vw / 1440 * 818, 818px);
    left: 50%;
    width: calc(100vw / 1440 * 818);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    opacity: 0;
    transform: translate(-50%, -50%);
    filter: blur(30px);
    animation: showBlur 1.4s ease-out forwards;
}

#main_inner{
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#banner_list{
    width: 85%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0rem;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.banner_box{
    width: 100%;
    
    padding: 2rem;
    
}

#main_navi{
    display: flex;
    flex-direction: row;
    gap: 0rem;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 1315px;
}

#main_navi span{
 filter: grayscale(100%);
}

.main_navi_btn{
    width: calc(100vw / 1440 * 263);
    height: calc(100vw / 1440 * 263);
    max-width: 263px;
    max-height: 263px;
    background-image: url("../images/common/navi/btn_bg.png");
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;

}

#open_info p{
    text-align: center;
    font-size: 2ch;
    font-weight: bold;   
}

#dream_body{
    border-radius: 1rem;
    box-shadow: 0px 0px 15px #000000bf;
}

#dream_container{
    width: 100%;
    max-width: 1000px;
    margin: 6rem auto;
    padding: 0rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2rem;
}

#dream_form{
    border-radius: 1rem;
    box-shadow: 0px 0px 10px #00000091;
}

#form_body{
    width: 80%;
    margin: 0 auto;
    padding: 2rem;
}

#racer_select{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.2rem;
  padding: 1rem;
  margin: 1rem;
  width: 100%;
}

.btn_racer_select{
    cursor: pointer;
}

.btn_racer_select:hover{
    opacity: 0.7;
} 

#footer{
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
}

#btn_vote{
    width: 144px;
    display: none;
}

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


    #header{
        
        width: 100%;
        max-width: 750px;
        margin: 0 auto;
        padding: 1rem;
        display: flex;
        justify-content:left;
        position: fixed;
        z-index: 300;
    }

    #header img{
        max-width: 40vw;
    }

    #main_inner{
        padding: 1rem;
    }

    #dentou_form{
        padding: 0.1rem;
    }

    #main_visual_tate{
        display: block;
    }
    #main_visual_yoko{
        display: none;
    }


    #main_container{
        width: 100%;
        max-width: 750px;
        margin: 0 auto;
        padding: 0rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    #main_visual{
        width: 100%;
        height: min(calc(100vw / 750 * 1212), 1212px);
    }


    #main_logo_box{
        position: absolute;
        top: min(100vw / 750 * 1130, 1130px);
        left: 50%;
        width: min(100vw / 750 * 700, 700px);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        opacity: 0;
        transform: translate(-50%, -50%);
        filter: blur(30px);
        animation: showBlur 1.4s ease-out forwards;
    }

    #race_date{
      width: min(100vw / 750 * 250, 250px);
    }


    #open_info p{
      font-size: 1.2rem;
    }

    #dream_container {
        width: 100%;
        max-width: 1000px;
        margin: 1rem auto;
        padding: 0rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 2rem;
    }

    #dream_form{
      padding: 0.3rem;
    }

    #racer_select{
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0rem;
      padding: 0.3rem;
      margin: 0rem;
      width: 100%;
    }


    .btn_racer_select span{
        font-size: 1.2rem;
    }


    #form_body{
        width: 100%;
        margin: 0 auto;
        padding: 1rem;
    }

    #form_body p{
        font-size: 1.4rem;
    }

    #form_body input{
        font-size: 1.4rem;
    }

    #dentou_attention{
      font-size: 1.2rem;
      font-weight: bold;
    }

}


.boat1{
    background-color: #fff;
    color: #000;
}

.boat2{
    background-color: #000;
    color: #fff;
}

.boat3{
    background-color: #e10d0d;
    color: #fff;
}

.boat4{
    background-color: #0628b3;
    color: #fff;
}

.boat5{
    background-color: #dde402;
    color: #000;
}

.boat6{
    background-color: #05a71a;
    color: #fff;
}


/* ラジオボタンの○を消す */
input[type="checkbox"] {
    display: none;
}
/* 画像の周りに隙間をあける */
label img {
    padding: 1px;
}

label{
    border-radius: 0.5rem;
}

/* 未選択の場合、色を薄くする */
input[type="checkbox"] + label {
    border: 2px solid #fff;
    opacity:1;
  }
/* 選択済みの場合、色を濃くする */
input[type="checkbox"]:checked + label {
    border: 2px solid #800101;
    opacity:0.7;
}


.ZigZag_3D {
    background-color: #ffffff;
opacity: 1;
background-image:  linear-gradient(30deg, #ffeef3 12%, transparent 12.5%, transparent 87%, #ffeef3 87.5%, #ffeef3), linear-gradient(150deg, #ffeef3 12%, transparent 12.5%, transparent 87%, #ffeef3 87.5%, #ffeef3), linear-gradient(30deg, #ffeef3 12%, transparent 12.5%, transparent 87%, #ffeef3 87.5%, #ffeef3), linear-gradient(150deg, #ffeef3 12%, transparent 12.5%, transparent 87%, #ffeef3 87.5%, #ffeef3), linear-gradient(60deg, #ffeef377 25%, transparent 25.5%, transparent 75%, #ffeef377 75%, #ffeef377), linear-gradient(60deg, #ffeef377 25%, transparent 25.5%, transparent 75%, #ffeef377 75%, #ffeef377);
background-size: 32px 56px;
background-position: 0 0, 0 0, 16px 28px, 16px 28px, 0 0, 16px 28px;
  }

  .bg_dia{
    background-image: conic-gradient(from 45deg at 50% 50%, #ffdb25 90deg, transparent 90deg 180deg, #ffcc24 180deg 270deg, transparent 270deg);
background-size: 12px 12px;
background-color: #fffb02;
animation: moveBg2 3s linear infinite;
  }

  .bg_wave{
    background-color: #ffffff;
opacity: 1;
background-image:  repeating-radial-gradient( circle at 0 0, transparent 0, #ffffff 16px ), repeating-linear-gradient( #e8d1ff55, #e8d1ff );
  }


  .bg_circle{
    background-color: #ffffff;
opacity: 1;
background-image: radial-gradient(circle at center center, #fdffd8, #ffffff), repeating-radial-gradient(circle at center center, #fdffd8, #fdffd8, 16px, transparent 32px, transparent 16px);
background-blend-mode: multiply;
  }


  @keyframes moveBg {
  from {
    background-position: 0 0;
  }
  to {
    background-position: -71px 94px;
  }
}

@keyframes moveBg2 {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 12px -12px;
  }
}

@keyframes showBlur {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%);
    filter: blur(30px);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%);
    filter: blur(0);
  }
}