@charset "UTF-8";

/* Common */

* {
-webkit-text-size-adjust: 100%;
}
html {
margin: 0;
padding: 0;
height: 100%;
font-size: 62.5%;
}
body {
position: relative;
font-family: "Open Sans", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
font-size: 1.0rem;
line-height: 1.0em;
letter-spacing: 0em;
color: #000;
background: #fff;
margin: 0;
padding: 0;
overflow-y: scroll;
word-wrap: break-word;
height: 100%;
}
h1,h2,h3,h4,h5,h6,p,a,ul,li,ol,dl,dt,dd,table,tr,th,td,span,strong {
line-height: 1.0em;
font-weight: 700;
font-feature-settings : "palt";
margin: 0;
padding: 0;
}
li {
list-style-type: none;
list-style-position: outside;
}
img {
vertical-align: bottom;
max-width: 100%;
height: auto;
}
a {
text-decoration: none;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
-ms-transition: 0.5s;
transition: 0.5s;
}
a:hover {
text-decoration: none;
color: #fff;
}
a img {
border: none;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
-ms-transition: 0.5s;
transition: 0.5s;
}
a:hover img {
opacity: 0.6;
_filter: alpha(opacity=60);
}
a:focus {
outline:none;
}
button {
background-color: transparent;
border: none;
cursor: pointer;
outline: none;
padding: 0;
appearance: none;
}
input, 
textarea, 
select {
outline: none;
margin: 0;
padding: 0;
border: none;
}



/* Clearfix */

.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display: inline-table;
}
* html .clearfix {
height: 1%;
}
.clearfix {
display: block;
}
.clear {
clear: both;
}



/* header */

.header {
position: fixed;
top: 0;
width: 100%;
padding: 40px;
box-sizing: border-box;
z-index: 9999;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
align-items: center;
-webkit-align-items: center;
justify-content: space-between;
-webkit-justify-content: space-between;
}
.header .logo {
width: 152px;
}
.header .logo:hover {
animation: buruburu .1s infinite;
}
.header ul {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
align-items: center;
-webkit-align-items: center;
}
.header ul li {
font-size: 1.4rem;
letter-spacing: 0.2em;
padding-left: 40px;
}
.header ul li a {
color: rgba(0,0,0,0.4);
position: relative;
padding-bottom: 8px;
}
.header ul li a:hover {
color: rgba(255,255,255,0.8);
}
.header ul li a:after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
-webkit-transform: scaleX(0);
-ms-transform: scaleX(0);
transform: scaleX(0);
background-color: #fff;
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.header ul li a:hover:after {
-webkit-transform: scaleX(1);
-ms-transform: scaleX(1);
transform: scaleX(1);
}




/* parts */

#canvas-container {
width: 100%;
height: 100%;
position: fixed;
top: 0;
z-index: 9998;
}
.wrapper {
height: 100%;
}
.wrapBox {
width: 100%;
height: 100%;
min-height: 960px;
}
.wrap {
width: 100%;
height: 100%;
position: relative;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
align-items: center;
-webkit-align-items: center;
}
#top {
background: #fff;
min-height: 0;
overflow: hidden;
}


#top .bgImg {
position: fixed;
top: 0;
left: 0;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
background: url(../images/bgKami01.png) center center /560px no-repeat;
}
#top .bgImg + div {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: rgba(255,255,255,0.24);
background: -moz-linear-gradient(-45deg, rgba(247, 114, 130, 0.96), rgba(253, 236, 234, 0.96));
background: -webkit-linear-gradient(-45deg, rgba(247, 114, 130, 0.96), rgba(253, 236, 234, 0.96));
background: linear-gradient(135deg, rgba(80, 90, 240, 0.96), rgba(0, 231, 151, 0.96));
}

#top video {
position: fixed;
top: 0;
right: 0;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
}
#top video + div {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: rgba(255,255,255,0.24);
background: -moz-linear-gradient(-45deg, rgba(247, 114, 130, 0.88), rgba(253, 236, 234, 0.88));
background: -webkit-linear-gradient(-45deg, rgba(247, 114, 130, 0.88), rgba(253, 236, 234, 0.88));
background: linear-gradient(135deg, rgba(80, 90, 240, 0.96), rgba(0, 231, 151, 0.96));
}
.ico-main {
width: 480px;
display: block;
margin: 0 auto;
transform: translateY(-40px);
opacity: 0;
transition-duration: .4s;
}
.ico-main.up {
transform: translateY(0);
opacity: 1;
transition-delay: 1s;
}
.ico-main.buru {
animation: buruburu .1s infinite;
}
@keyframes buruburu {
0% {transform: translate(0px, 0px) rotateZ(0deg)}
25% {transform: translate(2px, 2px) rotateZ(1deg)}
50% {transform: translate(0px, 2px) rotateZ(0deg)}
75% {transform: translate(2px, 0px) rotateZ(-1deg)}
100% {transform: translate(0px, 0px) rotateZ(0deg)}
}
.ico-down {
position: absolute;
bottom: -20px;
left: 50%;
margin-left: -56px;
animation: fluffy 4s ease infinite;
}
@keyframes fluffy {
0% { transform:translateY(-20px) }
10% { transform:translateY(0) }
20% { transform:translateY(-20px) }
30% { transform:translateY(0) }
40% { transform:translateY(-20px) }
50% { transform:translateY(0) }
60% { transform:translateY(-20px) }
70% { transform:translateY(0) }
80% { transform:translateY(-20px) }
90% { transform:translateY(0) }
100% { transform:translateY(-20px) }
}
#about {
color: #fff;
background: #5063f0;
background: rgba(80,90,240,0.48);
}
#news {
flex-direction: row-reverse;
-webkit-flex-direction: row-reverse;
justify-content: space-between;
-webkit-justify-content: space-between;
}
#contact {
background: #00e797;
background: rgba(0,231,151,0.48);
}

#about h2,
#contact h2 {
margin-left: 100px;
}
#news h2 {
margin-right: 200px;
}
h2 {
position: relative;
padding-bottom: 40px;
}
h2 strong {
font-size: 7.2rem;
letter-spacing: 0.2em;
display: block;
margin-bottom: 32px;
}
h2 span {
font-size: 1.6rem;
letter-spacing: 0.2em;
display: block;
}
h2:before {
content: '';
width: 40px;
height: 2px;
background: #000;
display: block;
position: absolute;
bottom: 0;
left: 0;
}
#about h2:before {
background: #fff;
}
h2:after {
content: '';
width: 80px;
height: 2px;
background: rgba(0,0,0,0.2);
display: block;
position: absolute;
bottom: 0;
left: 40px;
}
.col {
padding: 0 8%;
}
#about p {
font-size: 3.2rem;
line-height: 2.0em;
letter-spacing: 0.2em;
margin-bottom: 80px;
}
#about p span {
line-height: 2.0em;
letter-spacing: 0.2em;
display: block;
}
#about ul {
margin-left: -12px;
width: 80%;
}
#about ul li {
font-size: 1.4rem;
line-height: 40px;
letter-spacing: 0.2em;
border-radius: 40px;
margin: 0 0 16px 12px;
padding: 0 24px;
color: #fff;
border: 2px solid #fff;
display: inline-block;
position: relative;
z-index: 9999;
}
#about ul li:before {
content: "#";
margin-right: 4px;
}
#about ul li:hover {
animation: buruburu .1s infinite;
}
#news ul {
padding: 0 8%;
}
#news ul li {
font-size: 1.6rem;
line-height: 2.0em;
letter-spacing: 0.2em;
padding: 24px 0;
}
#news ul li span {
font-size: 1.2rem;
line-height: 2.0em;
letter-spacing: 0.2em;
display: block;
}
#contact table {
border-collapse: collapse;
width: 100%;
}
#contact table th {
font-size: 1.4rem;
line-height: 2.0em;
letter-spacing: 0.2em;
text-align: left;
width: 8.0em;
padding: 0 0 12px 0;
vertical-align: top;
}
#contact table td {
font-size: 1.4rem;
line-height: 2.0em;
letter-spacing: 0.2em;
text-align: left;
padding: 0 0 12px 0;
vertical-align: top;
}
#contact p {
font-size: 2.0rem;
line-height: 2.0em;
letter-spacing: 0.2em;
padding: 60px 0 0 0;
margin: 60px 0 40px 0;
border-top: 1px solid rgba(0,0,0,0.2);
}
#contact p span {
line-height: 2.0em;
letter-spacing: 0.2em;
display: block;
}
.link-mail {
font-size: 3.2rem;
letter-spacing: 0.2em;
color: rgba(0,0,0,0.4);
display: block;
z-index: 9999;
position: relative;
}
.link-mail:hover {
color: rgba(255,255,255,0.8);
}




/* loading */

#loader-bg {
display: none;
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
background: -moz-linear-gradient(-45deg, #5063f0, #00e797);
background: -webkit-linear-gradient(-45deg, #5063f0, #00e797);
background: linear-gradient(135deg, #5063f0, #00e797);
z-index: 10000;
}
#loader-bg .inner {
width: 100%;
height: 100%;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
align-items: center;
-webkit-align-items: center;
justify-content: center;
-webkit-justify-content: center;
}
#loader-bg .ico {
width: 320px;
display: block;
margin: 0 auto;
animation: fluffyyyy 8s ease infinite;
}
@keyframes fluffyyyy {
0% { transform:translateY(-12px) }
10% { transform:translateY(0) }
20% { transform:translateY(-12px) }
30% { transform:translateY(0) }
40% { transform:translateY(-12px) }
50% { transform:translateY(0) }
60% { transform:translateY(-12px) }
70% { transform:translateY(0) }
80% { transform:translateY(-12px) }
90% { transform:translateY(0) }
100% { transform:translateY(-12px) }
}

#loader-bg svg {
width: 480px;
}
.path {
stroke: #fff;
fill: none;
stroke-width: 2;
stroke-dasharray: 3000;
stroke-dashoffset: 3000;
animation: DASH 3s ease-in alternate forwards;
-webkit-animation: DASH 3s ease-in 0s forwards;
-o-animation: DASH 3s ease-in 0s forwards;
animation: DASH 3s ease-in 0s forwards;
}
@keyframes DASH {
    0% {
        stroke-dashoffset: 3000;
    }
    100% {
        stroke-dashoffset: 0;
    }
}
@-moz-keyframes DASH {
    0% {
        stroke-dashoffset: 3000;
    }
    100% {
        stroke-dashoffset: 0;
    }
}
@-webkit-keyframes DASH {
    0% {
        stroke-dashoffset: 3000;
    }
    100% {
        stroke-dashoffset: 0;
    }
}
@-o-keyframes DASH {
    0% {
        stroke-dashoffset: 3000;
    }
    100% {
        stroke-dashoffset: 0;
    }
}
@-ms-keyframes DASHf {
    0% {
        stroke-dashoffset: 3000;
    }
    100% {
        stroke-dashoffset: 0;
    }
}




/* Action */

.move.left {
-webkit-transform: translate(-400px, 0);
-ms-transform: translate(-400px, 0);
transform: translate(-400px, 0);
opacity: 0;
}
.move {
-webkit-transition: all 0.8s;
-webkit-transform: translate(0, 0);
-ms-transition: all 0.8s;
-ms-transform: translate(0, 0);
transition: all 0.8s;
transform: translate(0, 0);
opacity: 1;
}
.moveTtl.left {
-webkit-transform: translate(-200px, 0);
-ms-transform: translate(-200px, 0);
transform: translate(-200px, 0);
opacity: 0;
}
.moveTtl {
-webkit-transition: all 0.4s;
-webkit-transform: translate(0, 0);
-ms-transition: all 0.4s;
-ms-transform: translate(0, 0);
transition: all 0.4s;
transform: translate(0, 0);
opacity: 1;
}
#about.wrap:before,
#contact.wrap:before {
content: '';
display: block;
background: rgba(0,0,0,0.2);
width: 400px;
height: 100%;
position: absolute;
top: 0;
left: 0;
-webkit-transition: all 0.4s;
-ms-transition: all 0.4s;
transition: all 0.4s;
}
#about.wrap.wave:before,
#contact.wrap.wave:before {
content: '';
display: block;
background: rgba(0,0,0,0.2);
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
#news.wrap:before {
content: '';
display: block;
background: rgba(0,0,0,0.2);
width: 400px;
height: 100%;
position: absolute;
top: 0;
right: 0;
-webkit-transition: all 0.4s;
-ms-transition: all 0.4s;
transition: all 0.4s;
}
#news.wrap.wave:before {
content: '';
display: block;
background: rgba(0,0,0,0.2);
width: 100%;
height: 100%;
position: absolute;
top: 0;
right: 0;
}































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

/* header */

.header {
padding: 0;
display: block;
}
.header .logo {
width: 100px;
display: block;
margin: 20px auto;
}
.header ul {
justify-content: center;
-webkit-justify-content: center;
}
.header ul li {
font-size: 1.2rem;
padding: 0 8px;
}



/* parts */

#canvas-container {
display: none;
}
.wrapBox {
height: auto;
min-height: 0;
}
.wrap {
min-height: 0;
height: auto;
display: block;
padding: 120px 40px;
box-sizing: border-box;
}
#top {
height: 100%;
padding: 0;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
align-items: center;
-webkit-align-items: center;
}

#top .bgImg {
background: url(../images/bgKami01.png) center center /240px no-repeat;
}
#top .bgImg + div {
background: -moz-linear-gradient(-45deg, rgba(247, 114, 130, 0.96), rgba(253, 236, 234, 0.96));
background: -webkit-linear-gradient(-45deg, rgba(247, 114, 130, 0.96), rgba(253, 236, 234, 0.96));
background: linear-gradient(135deg, rgba(80, 90, 240, 0.96), rgba(0, 231, 151, 0.96));
}
#top video {
display: none;
}
#top video + div {
background: -moz-linear-gradient(-45deg, rgba(247, 114, 130, 0.88), rgba(253, 236, 234, 0.88));
background: -webkit-linear-gradient(-45deg, rgba(247, 114, 130, 0.88), rgba(253, 236, 234, 0.88));
background: linear-gradient(135deg, rgba(80, 90, 240, 0.84), rgba(0, 231, 151, 0.84));
}
.ico-main {
width: 240px;
width: 76%;
}
.ico-down {
width: 56px;
margin-left: -28px;
}
#about h2,
#contact h2,
#news h2 {
margin: 0 0 60px 0;
}
h2 {
padding-bottom: 32px;
}
h2 strong {
font-size: 4.0rem;
margin-bottom: 24px;
}
h2 span {
font-size: 1.0rem;
}
.col {
padding: 0;
position: relative;
}
#about p {
font-size: 2.0rem;
margin-bottom: 40px;
}
#about p span {
display: inline;
}
#about ul {
margin-left: -8px;
width: 100%;
}
#about ul li {
font-size: 1.0rem;
line-height: 28px;
border-radius: 28px;
margin: 0 0 12px 8px;
padding: 0 20px;
}
#about ul li:before {
content: "#";
margin-right: 4px;
}
#news ul {
padding: 0;
}
#news ul li {
font-size: 1.4rem;
padding: 24px 0 0 0;
}
#news ul li span {
font-size: 1.0rem;
}
#contact table th {
font-size: 1.2rem;
}
#contact table td {
font-size: 1.2rem;
}
#contact p {
font-size: 1.4rem;
padding: 40px 0 0 0;
margin: 24px 0 20px 0;
}
#contact p span {
display: inline;
}
.link-mail {
font-size: 1.6rem;
}




/* loading */

#loader-bg .ico {
width: 160px;
}
@keyframes fluffyyyy {
0% { transform:translateY(-12px) }
10% { transform:translateY(0) }
20% { transform:translateY(-12px) }
30% { transform:translateY(0) }
40% { transform:translateY(-12px) }
50% { transform:translateY(0) }
60% { transform:translateY(-12px) }
70% { transform:translateY(0) }
80% { transform:translateY(-12px) }
90% { transform:translateY(0) }
100% { transform:translateY(-12px) }
}
#loader-bg svg {
width: 76%;
}



/* Action */

#about.wrap:before,
#contact.wrap:before,
#news.wrap:before {
width: 24%;
}
#about.wrap.wave:before,
#contact.wrap.wave:before,
#news.wrap.wave:before {
width: 100%;
}




}