@import url("https://fonts.googleapis.com/css?family=Montserrat+Alternates:700");
@import url("https://fonts.googleapis.com/earlyaccess/notosansjapanese.css");
html,
body,
span,
h1,
h2,
em,
article,
footer,
header,
table,
tr,
th,
td,
dl,
dt,
dd {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: normal;
  vertical-align: baseline;
  background-color: transparent; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

footer,
header {
  display: block; }

html {
  font-size: 62.5%;
  line-height: 1.618;
  height: 100%; }
  html body {
    height: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-family: "Helvetica Neue", Helvetica,"Noto Sans Japanese","Hiragino Kaku Gothic Pro", Meiryo, Arial, Verdana, sans-serif;
    position: relative; }

.key {
  position: relative;
  text-align: center;
  background: linear-gradient(-45deg, #8ce9f7, #f4d8ad) fixed;
  position: relative;
  width: 100%; }
  .key:before {
    content: "";
    display: block;
    padding-top: 56.25%; }
  .key .key__box {
    position: absolute;
    top: 50%;
    left: 0;
    bottom: 0;
    right: 0;
    transform: translate(0, -50%); }
    .key .key__box h1,
    .key .key__box em {
      display: inline-block;
      font-weight: 700;
      font-size: 12vw;
      line-height: 1;
      font-family: 'Montserrat Alternates';
      color: #fff;
      letter-spacing: -0.03em;
      text-align: center;
      font-style: normal;
      animation: fadea 1000ms 2000ms;
      animation-fill-mode: forwards;
      opacity: 0; }
      .key .key__box h1 span,
      .key .key__box em span {
        color: #88C9E0;
        margin-right: 0.4vw;
        padding: 0 1.5vw;
        text-indent: -0.6vw;
        font-weight: 700;
        background: #fff;
        opacity: 0;
        display: inline-block;
        animation: fadeb 1000ms 3000ms;
        animation-fill-mode: forwards; }

@keyframes fadea {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes fadeb {
  from {
    opacity: 0; }
  to {
    opacity: .2; } }
h1 {
  padding-right: 1.5vw; }
  h1 span {
    animation: fadeb 1000ms 4000ms;
    animation-fill-mode: forwards; }

em {
  text-indent: -0.7vw;
  padding-left: 1.5vw; }
  em span {
    margin: 0 0 0 1.5vw;
    text-indent: -0.9vw; }

section {
  background: #fff;
  display: block;
  overflow: hidden;
  margin: 80px auto;
  width: 90%; }
  section .head {
    font-size: 2.8rem;
    color: #999;
    text-align: center;
    line-height: 1; }
  section .about {
    box-sizing: border-box;
    background: #fafafa;
    max-width: 800px;
    padding: 20px;
    box-sizing: border-box;
    margin: 40px auto 0; }
    section .about table {
      width: 100%;
      margin: 0 auto;
      font-size: 0; }
      section .about table th,
      section .about table td {
        padding: 20px;
        box-sizing: border-box;
        font-size: 1.6rem;
        vertical-align: middle;
        color: #666; }
      section .about table th {
        width: 25%; }
      section .about table tr:not(:last-child) td,
      section .about table tr:not(:last-child) th {
        border-bottom: dotted 1px #ddd; }
    @media screen and (max-width: 600px) {
      section .about table th, section .about table td {
        display: block;
        border: none !important; }
      section .about table th {
        width: 100%;
        background: #bbb;
        color: #fff;
        padding: 10px 0; } }

footer {
  position: fixed;
  bottom: 0;
  right: 0;
  display: block;
  width: 150px;
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  line-height: 93px;
  color: #fff;
  background: #88C9E0;
  transition: .3s; }
  @media screen and (max-height: 500px) {
    footer {
      line-height: 40px; } }
