*{
box-sizing: border-box;
}

html{
line-height:1.8;
}
body{
  margin:0;
  box-sizing: border-box;
  
  background: #000;
}
.pc{display:block;}
.sp{display:none;}

@media screen and (max-width:750px){/*画面幅が520pxまでの時*/
.pc{display:none;}
.sp{display:block;}
}

p{
margin: 2%;
}

a{
  word-break: break-all;
}

article{
position:absolute;
top:0;
left:100%;
}
#daiwrap{
overflow:hidden;
position: relative;
}

#section1{
position: relative;
margin: auto;
height: 100vh;
height: calc(var(--vh, 1vh) * 100);
min-height:100px;
width: 100%;
text-align: center;
display: flex;
flex-direction: column;
-webkit-box-pack:justify;
-ms-flex-pack:justify;
justify-content:space-between;
overflow:hidden;

  margin:0;
box-sizing: border-box;
}
#kumo {
position: absolute;
    z-index: -1;
    opacity: .3;
margin: 0;
height: 100vh;
width: 100%;
background:url('img/bg-kumo.png');
	-webkit-animation:infinitescroll 15s linear infinite;
	-moz-animation:infinitescroll 15s linear infinite;
	-ms-animation:infinitescroll 15s linear infinite;
	-o-animation:infinitescroll 15s linear infinite;
	animation:infinitescroll 15s linear infinite;
box-sizing: border-box;
}
@keyframes infinitescroll {
	0% {background-position:0 -80px;}
	100% {background-position:-972px -80px;}
}

@media screen and (max-width:750px){/*画面幅が520pxまでの時*/
#section1{
}
}

#kaisai1{
padding: 1% 2%;
position: relative;
width: 100%;
margin: auto;
text-align: center;
box-sizing: border-box;
z-index: 100;
}
#kaisai2{
width: 100%;
height: 100%;
min-height: 25%;
flex-grow: 2;
z-index: 1;
}

#kettei img{
width:100%;
max-width:1200px;
margin:auto;
}

@media screen and (max-width:750px){/*画面幅が520pxまでの時*/
#kettei{
}
}

#explanation{
width:100%;
max-width:1200px;
margin:auto;
font-size: 75%;
font-weight: bold;
color: #fff;
padding:1em 3em;
filter: drop-shadow(0px 0px 1px rgba(0,0,0,1));
}

#explanation a{
color: #fff;
}

@media screen and (max-width:750px){/*画面幅が750pxまでの時*/
#explanation{
font-size: 1.2vw;
}
}

#btn-next{
background:rgb(255,255,255,0.3);
width: 100%;
text-align: center;
box-sizing: border-box;
    position: absolute;
    bottom: 0;
    left: 0%;
}
.btn-next{
background:rgb(0,0,0,0.7);
width: 100%;
text-align: center;
box-sizing: border-box;
    position: absolute;
    bottom: 0;
    left: 0%;
}
#logo-main {
    width: 100%;
    height: 100%;
    min-height: 25%;
    flex-grow: 2;
    z-index:1;
}
#logo {
    margin:auto;
    background: url(img/logo-main.png) no-repeat 50% 50%;
    background-size: contain;
    text-align: center;
  animation:1.5s ease-in 0s forwards logo1zoom;
    height: 100%;
    width: 100%;
    opacity:0;
}
@media screen and (max-width:750px){/*画面幅が520pxまでの時*/
#logo-main{
}
#logo {
}
}
@keyframes logo1zoom{
  0%{ opacity:0;}
  100%{ opacity:1; }
}


#kettei{
height:100%;
width:100%;
/*max-height:300px;*/
background:url(img/kaisai.png) no-repeat 50% 25%;
background-size:contain;
    text-align: center;
  animation:1.5s ease-in 0s forwards kettei1zoom;
    height: 100%;
    width: 100%;
    opacity:0;
}
@keyframes kettei1zoom{
  0%{ opacity:0;}
  100%{ opacity:1; }
}

#shuryo{
    width: 50%;
    position: absolute;
    top: 10%;
    text-align: center;
    flex-grow: 2;
    display: flex;
    justify-content: flex-end;
}
#shuryo .shuryo{
    width: 100%;
    height: 0px;
    padding-bottom: 30%;
    background: url(../2021/img/shuryo.png) no-repeat 0% 0%;
    background-size: contain;
    transform: rotate(-15deg);
}
@media screen and (max-width:750px){/*画面幅が520pxまでの時*/
#shuryo{
}
#shuryo .shuryo{
}
}
#shuryo img{
height:100%;
}

#illustrator{
height:30px;
width:100%;
position:absolute;
bottom: -30px;
right:0;
/*max-height:300px;*/
background:url(/2025/img/illustration.png) no-repeat 100% 100%;
background-size:contain;
}
@media screen and (max-width:750px){/*画面幅が520pxまでの時*/
#illustrator{
width: 40%;
}
}

#illustration{
height:20px;
position: absolute;
top:-30px;
right:15px;
}
#illustration img{
height:100%;
max-height:42px;
}






/* コンテンツ枠
--------------------------------------------------------- */
.contents {
    padding: 3em 0.5em 5em;
    background: rgba(0,0,0,0.8);
    position: relative;
}

.twitter-timeline {
    max-width: 650px !important;
    margin: auto;
}

/* 枠幅75%
--------------------------------------------------------- */
.waku75 {
    width:75%;
    min-width: 560px;
    margin: 0 auto;
    padding-bottom: 2em;
}

@media screen and (max-width:580px) {
.waku75 {
    width:100%;
    min-width: unset;
}
}

/*--------------------------------------------------------- */

#social_share{
  text-align: center;
  padding:0;
}

.sociallist {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin: 0.5em;
}

.sociallist__item {
  width: 5vw;
  max-width:60px;
  height: 5vw;
  max-height:60px;
  display: inline-block;
  border-radius: 10%;
  margin: 0px 5px;
  -webkit-transition: .1s;
          transition: .1s;
}


@media screen and (max-width:580px) {
.sociallist__item {
  width: 2em;
  height: 2em;
}
}


.sociallist__item--twitter {
  background: #000000;
}
.sociallist__item--facebook {
  background: #3B5998;
}
.sociallist__item--line {
  background: #00C300;
}
.sociallist__item > a {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.sociallist__item > a > svg {
  height: 60%;
  margin: 0;
  padding: 0;
  width: 60%;
}
.sociallist__item > a > svg > path {
  fill: #FFF;
}
.sociallist__item:hover {
  -webkit-box-shadow: 0 0 5px 0 #ff0099; /* Safari, Chrome用 */
  -moz-box-shadow: 0 0 5px 0 #ff0099; /* Firefox用 */
  box-shadow: 0 0 5px 0 #ff0099; /* CSS3 */
}

table.table_style04 {
    width: 100%;
    min-width: 560px;
    max-width: 840px;
    margin: 0 auto;
}
table.table_style04, .table_style04 th, .table_style04 td {
    border: 1px solid #ccc;
    margin-top: 1em;
}
table {
    font-size: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}
table.table_style04 th {
    background-color: #f3f3f3;
    text-align: left;
    padding: 8px 6px;
    line-height:1.6;
}
table.table_style04 td {
    background-color: #fff;
    text-align: left;
    padding: 8px 6px;
    line-height:1.6;
}

.sp_mode{display:none;}
@media screen and (max-width:580px) {
table.table_style04 {
    width: 100%;
    min-width: unset;
}
table.table_style04 tr {
    display: flex;
    flex-flow: column;
    width: 100%;
}
table.table_style04 th {
    white-space: pre-wrap;
    margin: 0;
    width: 100%;
    border-bottom:none;
}
table.table_style04 td {
    margin: 0;
    width: 100%;
    border-top:none;
}
.sp_mode{display:inline;}
}
}
#timetable{display:none;}
#timetable.d-on{
    display: flex;
    align-items: center;
}

#kansenboushitaisaku{
display:block;
text-align:center;
margin-top:1em;
padding:1em;
width:100%;
border:1px solid #ccc;
}
#kansenboushitaisaku:hover{
border:1px solid #cc66cc;
}

/* ロードレイヤー
--------------------------------------------------------- */

.loading {
    height: calc(var(--vh, 1vh) * 100);
    width: 100%;
  background: linear-gradient(0deg, rgba(50,120,255,1), rgba(50,120,255,1), rgba(140,200,255,1), rgba(100,0,255,1), rgba(0,1,0,.1), rgba(0,1,0,.1));
  background-size: 100% 400%;/*サイズを大きくひきのばす*/
  background-position: 0% 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    z-index: 9999;
    position: fixed;
    top: 0;
    left: 0;
  animation:2s ease-in 2s forwards rotation;
}
.loading:before {
content: "";
    position: absolute;
    height: 100vh;
    width: 100%;
/*    background-image: url(img/bg-sora1.jpg);*/
    background-repeat: no-repeat;
    background-position: 0% 0%;
    background-size: cover;
}
.loading .kaiten{
	position:absolute;
	top:0%;
    height: calc(var(--vh, 1vh) * 100);
    width: 100%;
}
@media screen and (max-width:580px) {
.loading:before {
    }
.loading .kaiten{
    }
}
@keyframes rotation{
  0%{ background-position: 0% 100%;}
  100%{ background-position: 0% 0%; }
}
.loading .kaiten #gazou1{
	width:100%;
	height:100%;
	background:url(img/bg-kumo.png) repeat-x 50% 50%;background-size:100%;
	position:absolute;
	top:-100%;
	left:0;
  animation:1s ease-in 2s forwards rekaiten1;
}
.loading .kaiten #gazou2{
	width:100%;
	height:100%;
	background:url(img/bg-kumo.png) repeat-x 50% 50%;background-size:80%;
	position:absolute;
	top:-100%;
	left:0%;
  animation:2s ease-in 1s forwards rekaiten2;
}
.loading .kaiten #gazou3{
	width:100%;
	height:100%;
	background:url(img/bg-kumo.png) repeat-x 50% 50%;background-size:60%;
	position:absolute;
	top:-100%;
	left:0%;
  animation:3s ease-in 0s forwards rekaiten3;
}
@keyframes rekaiten1{
  0%{ top:-100%; }
  99%{ top:100%; }
  100%{ top:100%; }
}
@keyframes rekaiten2{
  0%{ top:-100%; }
  99%{ top:100%; }
  100%{ top:100%; }
}

@keyframes rekaiten3{
  0%{ top:-100%; }
  99%{ top:100%; }
  100%{ top:100%; }
}

