@charset "utf-8";

/* Loading*/
#splash {
	position: fixed;
	z-index: 999;
	width: 100%;
	height: 100%;
	background:#ddd;
	text-align:center;
}
#splash_logo {
	position: absolute;
	top: 50%;
	left: 50%;
    z-index: 999;
	width: auto;
	transform: translate(-50%, -50%);
}
.sub-splash{
    opacity: 0;
}
.fadeUp{
    animation-name: fadeUpAnime;
    animation-duration:0.2s;
    animation-fill-mode:forwards;
    opacity: 0;
   }
   @keyframes fadeUpAnime{
    from {
      opacity: 0;
    transform: translateY(50px);
    }
    to {
      opacity: 1;
    transform: translateY(0);
    }
  }
/* navi menu */
#g-nav{
    position:fixed;
    z-index: 999;
    top:0;
    left: -120%;
    width:100%;
    height: 100vh;
    background: linear-gradient(to top right, rgba(206 ,223, 221,1), rgba(157, 192, 208,1));
    transition: all 0.6s;
}
#g-nav.panelactive{ left: 0;}
#g-nav.panelactive #g-nav-list{
    position: fixed;
    z-index: 999; 
    width:100%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
/*menu*/
#g-nav ul {
    position: absolute;
    z-index: 999;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
}
#g-nav li{
	list-style: none;
    text-align: center;
}
#g-nav li a{
	color: #111;
	text-decoration: none;
	padding:7px 10px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: bold;
}

/* btn action*/
.openbtn{
	position:fixed;
    z-index: 9999;
	top:0;
	left: 0;
	cursor: pointer;
    width: 70px;
    height:100vh;
    background:#f0f0f0;
    border-right:1px solid #333;
}
.openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 18px;
    height: 3px;
    border-radius: 2px;
	background-color: #666;
  	width: 57%;
  }
.openbtn span:nth-of-type(1) {top:45vh;}
.openbtn span:nth-of-type(2) {top:46vh;}
.openbtn span:nth-of-type(3) {top:47vh;}
.openbtn.active span:nth-of-type(1) {
    top:46vh;
    transform: rotate(45deg);
}
.openbtn.active span:nth-of-type(2) {
    opacity: 0;
}
.openbtn.active span:nth-of-type(3) {
    top:46vh;
    transform: rotate(-45deg);
}
@media screen and (max-width:960px) {
    .openbtn{
        width: 60px;
        height: 60px;
        border:none;
        background: none;
    }
    .openbtn span:nth-of-type(1) {
        top: 19px;
        left: 15px;
    }
    .openbtn span:nth-of-type(2) {
        top: 29px;
        left: 15px;
    }
    .openbtn span:nth-of-type(3) {
        top: 40px;
        left: 15px;
    }
    .openbtn.active span:nth-of-type(1) ,
    .openbtn.active span:nth-of-type(3){
        top:28px;
    }
}

/*linemenu*/
a.linemenu{ position: relative; }
a.linemenu::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 5%;
    width: 90%;
    height: 2px;
    background:#222;
    transition: all .3s;
    transform: scale(0, 1);
    transform-origin: left top;
}
a.linemenu:hover::after { transform: scale(1, 1);}

/*float btn*/
.float3{
	position:relative;
	top:0;
    padding:8px 30px 6px 30px;
    display: inline-block;
    border: 1px solid #333;
    color: #333;
    text-decoration: none;
    outline: none;
    transition: all .3s;
}
.float3:hover {
    display: block;
    color: #fff;
    background: rgba(0, 0, 0,0.65);
	top:-3px;
	box-shadow: 0 2px 3px rgba(0, 0, 0, 0.3);
}

/* animation btn for form */
.btn04 {
	position: relative;
	display:inline-block;
    padding: 10px 30px;
	margin: 0 10px 10px 10px;
	color:#333;
	border:1px solid #ccc;
    text-decoration: none;
    outline: none;
 	overflow: hidden;
}
.btn04:hover {
	color:#fff;
	border-color: transparent;
	transition-delay: .6s;
}
.btn04 span{
    display: block;
    z-index: 2;
}
/* btn line */
.borderleft span::before,
.borderleft span::after {
    content: '';
    position: absolute;
    width:0;
    height:1px;
    background: #333;
	transition: all .3s;
}
.borderleft span::before {
    left:0;
    top:0;
}
.borderleft span::after {
    left:0;
    bottom:0;
}
.borderleft:hover span::before,
.borderleft:hover span::after {
    width: 100%;
}
.borderleft::before{
	content: '';
	position: absolute;
	left: 0;
    bottom:0;
	z-index: -1;
	height: 100%;
	width: 0;
	background:#333;
	transition: all .3s;
}
.borderleft:hover::before{
	width: 100%;
	transition-delay: .4s;
}

/* animation link line */
.btnlinestretches4{
	position:relative;
	color:#333;
    padding: 10px 50px 10px 30px;
	display:inline-block;
    text-decoration: none;
    outline: none;
}
.btnlinestretches4::before,
.btnlinestretches4::after{
	content:'';
	position:absolute;
	z-index:1;
	bottom:0;
	left:0;
	background:#333;
	width:100%;
	height:2px;
	transition:all 0.3s ease-in-out;
}
.btnlinestretches4::after{
	width:0;
	background:#00b7b8;
}
.btnlinestretches4:hover::after {width:100%;}
.btnlinestretches4 span::after {
    content: '';
    position: absolute;
    top: 1.3em;
    right: 20px;
    width: 5px;
    height: 5px;
    border-top: 1px solid #000;
    border-right: 1px solid #000;
    transform: rotate(45deg);
    transition: all .3s;
}
.btnlinestretches4:hover span::after {
	right:15px;
    border-color: #00b7b8;
}

/* fade (JS) */
.fadeDown{
animation-name: fadeDownAnime;
animation-duration:0.7s;
animation-fill-mode:forwards;
opacity:0;
}
@keyframes fadeDownAnime{
  from {
    opacity: 0;
	transform: translateY(-100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/* smooth (JS) */
.smooth{
	animation-name: smoothAnime;
	animation-duration:0.8s;
	animation-fill-mode:forwards;
   transform-origin: left;
	opacity:0;
}

@keyframes smoothAnime{
  from {
  transform: translate3d(0, 100%, 0) skewY(12deg);
  opacity:0;
  }
  to {
  transform: translate3d(0, 0, 0) skewY(0);
  opacity:1;
  }
}

/* animation item ini */
.fadeDownTrigger,
.smoothTrigger{
    opacity: 0;
}

/* image zoom */
.zoomOut img{
	transform: scale(1.1);
	transition: .3s ease-in-out;
}
.zoomOut:hover img{transform: scale(1);}
.zoomOut .mask{
    display: block;
    height: 15vw;
    overflow: hidden;
}
@media screen and (max-width:1020px) {
    .zoomOut .mask{height: 25vw;}
}
@media screen and (max-width:550px) {
    .zoomOut .mask{ height: 45vw;}
}

/* shape*/
.fluid {
    width:100%;
    height:100%;
    background: linear-gradient(45deg,rgba(46,163,217,1),rgba(157, 192, 208,1));/*背景色（グラデーション）*/ 
    animation: fluidrotate 30s ease 0s infinite;
}
@keyframes fluidrotate {
    0%, 100% {border-radius: 63% 37% 54% 46%/55% 48% 52% 45%;}
    14% {border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;}
    28% {border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;}
    42% {border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;}
    56% {border-radius: 65% 39% 67% 33%/70% 50% 50% 30%;}
    70% {border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;}
    84% {border-radius: 46% 54% 50% 50%/40% 61% 39% 65%;}
}
@keyframes fluidrotate2 {
    0%, 100% {border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;}
    16% {border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;}
    30% {border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;}
    45% {border-radius: 61% 39% 70% 33%/70% 50% 50% 30%;}
    60% {border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;}
    75% {border-radius: 46% 54% 50% 50%/35% 61% 39% 65%;}
    88%{border-radius: 65% 32% 59% 42%/59% 42% 54% 40%;}
}
@keyframes fluidrotate3 {
    0%, 100% {border-radius: 46% 54% 50% 50%/35% 61% 39% 65%;}
    12% {border-radius: 63% 37% 54% 46%/55% 48% 52% 45%;}
    26% {border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;}
    40% {border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;}
    54% {border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;}
    68% {border-radius: 61% 39% 67% 33%/70% 50% 50% 30%;}
    82% {border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;}
}
@keyframes fluidrotate4 {
    0%, 100%  {border-radius: 61% 39% 55% 45%/61% 38% 62% 39%;}
    10% {border-radius: 63% 37% 54% 46%/55% 48% 52% 45%;}
    24% {border-radius: 40% 60% 54% 46%/49% 60% 40% 51%;}
    38% {border-radius: 61% 39% 67% 33%/70% 50% 50% 30%;}
    52% {border-radius: 54% 46% 38% 62%/49% 70% 30% 51%;}
    66% {border-radius: 46% 54% 50% 50%/35% 61% 39% 65%;}
    80% {border-radius: 50% 50% 34% 66%/56% 68% 32% 44%;}
}

/* 幾何学*/
#particles-js{ 
	position:fixed;
	z-index:-1;
	width: 100%;
	height: 100%;
}
#wrapper{
	position: relative;
	z-index: 1;}

/* Wave*/
#waveCanvas{
    position: absolute;
    bottom: 0;
	left:0;
    width: 100%;
}
