@charset "UTF-8";
/* CSS Document */
/* Default -------------- */
/* reset */
html, body, h1, h2, h3, h4, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: 400;
  vertical-align: baseline;
}

article, header, footer, aside, figure, figcaption, nav, section {
  display: block;
}

body {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

ol, ul {
  list-style: none;
  list-style-type: none;
}

hr {
  border: none;
}

*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

/* Global */
selector {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  letter-spacing: 0.05em;
  font-size: 62.5%;
  height: 100%;
  min-height: 100%;
  width: 100%;
  overflow-Y: scroll;
  text-align: center;
  background-color: #F2EFED;
}

body {
  height: 100%;
  min-height: 100%;
  font-family: "Sawarabi Gothic", sans-serif;
  color: #252D36;
  line-height: 1.8;
  font-size: 1.6rem;
  text-shadow: 0px 0px 1px rgba(0, 0, 0, 0.1);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#main {
  text-align: left;
}

h4, h3, h2, li, dd, dt {
  -webkit-transform: rotate(0.001deg);
}

ul {
  list-style: none;
}

a img, :link img, :visited img {
  border: none;
}

:link, :visited, :active {
  text-decoration: none;
}

a {
  color: #266084;
  cursor: pointer;
  outline: none;
  text-decoration: none;
  -webkit-transition: all .3s;
  transition: all .3s;
}

a:hover {
  text-decoration: none;
  color: #DDCC22;
}

a span {
  -webkit-transition: all .3s;
  transition: all .3s;
}

a:hover span {
  text-decoration: none;
  color: #DDCC22;
}

figure {
  margin: 0;
  padding: 0;
}

figure.link {
  opacity: 1;
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
  margin: 0;
  padding: 0;
}

figure.link:hover {
  opacity: .7;
}

h2 {
  font-size: 4rem;
  margin: 0 0 50px 0;
  font-weight: bold;
  text-align: center;
  font-family: "VT323", "Sawarabi Gothic", sans-serif;
}
h2:before, h2:after {
  content: '';
  display: inline-block;
  width: 5%;
  height: 1px;
  margin: 1rem;
}
h2:before {
  background: -webkit-gradient(linear, left top, right top, from(#DDCC22), to(#2E4971));
  background: linear-gradient(90deg, #DDCC22, #2E4971);
}
h2:after {
  background: -webkit-gradient(linear, left top, right top, from(#2E4971), to(#DDCC22));
  background: linear-gradient(90deg, #2E4971, #DDCC22);
}

h3 {
  font-size: 2.5rem;
  margin: 20px 0;
  padding-left: 6px;
  border-left: 10px solid #2E4971;
  line-height: 1.4;
}

h4 {
  font-size: 2rem;
  margin: 50px 0 10px 0;
}

h5 {
  font-size: 1.8rem;
  margin: 50px 0 10px 0;
  border-bottom: 3px double #4C4971;
}

hr {
  border-top: 1px solid #DBD9D7;
  border-bottom: 1px solid #FFFFFF;
  margin: 80px 40%;
}

p {
  margin: 20px 0;
}

img {
  width: 100%;
  display: block;
}

/* Layout ------------------------------- */
#container {
  width: 100%;
  max-width: 720px;
  margin: 20px auto;
  padding: 15px;
  text-align: left;
}

section {
  margin: 20px 0 100px 0;
  z-index: 1;
}

article {
  margin: 40px 0 80px 0;
}

/* index ------------------------------- */
section.portfolio h3 {
  font-size: 1.6rem;
}
section.portfolio p {
  font-size: 1.4rem;
}
section.portfolio figure {
  -webkit-box-shadow: 3px 3px 9px -4px rgba(0, 0, 0, 0.6);
          box-shadow: 3px 3px 9px -4px rgba(0, 0, 0, 0.6);
}

section.illust article {
  margin: 0 0.5% 3px 0;
  float: left;
  width: 33%;
}
section.illust article:nth-child(3n) {
  margin-right: 0;
}
section.illust article figure {
  width: 100%;
  -webkit-box-shadow: 3px 3px 9px -4px rgba(0, 0, 0, 0.6);
          box-shadow: 3px 3px 9px -4px rgba(0, 0, 0, 0.6);
}
section.illust article img {
  height: 250px;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center center;
     object-position: center center;
  font-family: "object-fit: cover; object-position: bottom;";
}

section.about h4 {
  margin-top: 20px;
  text-align: center;
}
section.about dl {
  display: table;
  margin: 30px 0;
  vertical-align: middle;
}
section.about dt {
  display: table-cell;
  padding-right: 10px;
  font-size: 3rem;
  vertical-align: middle;
}
section.about dd {
  display: table-cell;
  vertical-align: middle;
}

/* illust & web ------------------------------- */
ul {
  margin: 20px 15px;
}

li {
  list-style: square;
  margin: 10px 20px;
}

table {
  border: 2px solid #ccc;
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

th, td {
  padding: 10px;
  border: 0.5px solid #ddd;
  min-width: 80px;
  max-width: 480px;
  vertical-align: middle;
}

th {
  background: #2E4971;
  color: #FFFFFF;
  font-weight: bold;
  text-align: center;
}

body.web th:nth-child(1), body.web td:nth-child(1) {
  text-align: left;
}
body.web td:nth-child(2) {
  text-align: center;
}
body.web td:nth-child(3) {
  text-align: right;
}

span.planS {
  background: #FFAF00;
  border-radius: 5px;
  font-weight: bold;
  font-size: 1.6rem;
  padding: 5px;
  color: #FFFFFF;
}

span.planA {
  background: #FF6A83;
  border-radius: 5px;
  font-weight: bold;
  font-size: 1.6rem;
  padding: 5px;
  color: #FFFFFF;
}

span.planB {
  background: #BBBFBC;
  border-radius: 5px;
  font-weight: bold;
  font-size: 1.6rem;
  padding: 5px;
  color: #FFFFFF;
}

span.plan1h {
  background: #5E6FFF;
  border-radius: 5px;
  font-weight: bold;
  font-size: 1.6rem;
  padding: 5px;
  color: #FFFFFF;
}

span.att {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.7);
}

div.att {
  position: relative;
  margin: 4em 0;
  padding: 15px;
  border: solid 3px #2E4971;
}

div.att .boxTitle {
  position: absolute;
  display: inline-block;
  top: -27px;
  left: -3px;
  padding: 0 9px;
  height: 25px;
  line-height: 25px;
  vertical-align: middle;
  font-size: 17px;
  background: #2E4971;
  color: #ffffff;
  font-weight: bold;
  border-radius: 5px 5px 0 0;
}

div.att p {
  padding: 0;
}

.uline {
  border-bottom: 1px dashed #DBD9D7;
}

/* form ------------------------------- */
.form div {
  margin: 20px 0 20px 0;
}
.form label {
  font-size: 1.4rem;
}
.form label span {
  padding: 0 2px 2px 2px;
  font-size: 0.9rem;
  background-color: #252D36;
  color: #FFFFFF;
  vertical-align: middle;
  border-radius: 2px;
}
.form textarea, .form input {
  display: block;
  font-size: 1.4rem;
  border: 1px solid #DBD9D7;
}
.form textarea {
  width: 100%;
  max-width: 400px;
  height: 180px;
  line-height: 1.6;
}
.form input {
  height: 30px;
  width: 100%;
  max-width: 340px;
}
.form button#submit {
  width: 130px;
  height: 40px;
  background: #2E4971;
  font-size: 1.6rem;
  color: #FFFFFF;
  border: none;
  cursor: pointer;
}
.form button#submit:hover {
  background: #DDCC22;
}

/* lecture ------------------------------- */
span.num {
  font-size: 1.2rem;
  margin-left: 5px;
}

span.marker {
  background: rgba(255, 255, 0, 0.6);
}

.mokuji ul {
  margin-top: 0px;
  font-size: 1.4rem;
}
.mokuji li {
  margin: 0px 20px;
}

figcaption {
  color: #666666;
  font-size: 1.2rem;
  text-align: center;
}

.lecTable td {
  text-align: center;
}

/* pageTop ------------------------------- */
#pageTop {
  position: fixed;
  bottom: 15px;
  right: 15px;
  font-size: 2.3rem;
  font-weight: bold;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  line-height: 1.2;
  text-align: center;
  background: rgba(255, 255, 255, 0.7);
}
#pageTop span {
  display: block;
  font-size: 1rem;
}
#pageTop a {
  display: block;
  width: 100%;
  z-index: 9999;
}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

/* clear ------------------------------- */
.fclear {
  clear: both;
}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

/* scroll-header ------------------------------- */
#main {
  padding-top: 600px;
  background: #F2EFED;
  min-height: 100%;
}
@media screen and (max-width: 600px), print {
  #main {
    padding-top: 220px;
  }
}

.app-header {
  display: block;
  background: #121212;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  color: #fff;
  height: 600px;
  z-index: 1000;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0);
          box-shadow: 0 2px 5px rgba(0, 0, 0, 0);
}
@media screen and (max-width: 600px), print {
  .app-header {
    height: 220px;
  }
}

.header-content {
  position: relative;
  height: 100%;
  width: 100%;
  font-family: "VT323";
}

.app-toolbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  height: 64px;
  padding: 0 16px;
  pointer-events: none;
  font-size: 20px;
}

#large-toolbar {
  position: absolute;
  bottom: 0;
  -webkit-transform-origin: left top;
          transform-origin: left top;
  margin-bottom: 24px;
  margin-bottom: 16px;
  width: 100%;
}

.small-title,
.large-title {
  -webkit-transform-origin: left top;
          transform-origin: left top;
  white-space: nowrap;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -ms-flex-preferred-size: 0.000000001px;
      flex-basis: 0.000000001px;
  overflow: hidden;
  font-weight: 400;
  line-height: 1.5;
  position: relative;
}

.small-title {
  margin-left: 40px;
  opacity: 0;
}

.large-title {
  will-change: transform, opacity;
  font-size: 56px;
  margin-left: 64px;
}
@media screen and (max-width: 600px), print {
  .large-title {
    margin-left: 0px;
  }
}

.background-container {
  position: absolute;
  overflow: hidden;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

.background {
  pointer-events: none;
  position: absolute;
  background-size: cover;
  height: 100%;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  will-change: transform, opacity;
}

#background-back {
  background-image: url(../images/header02.jpg);
  background-position: left center;
  opacity: 0;
}

#background-front {
  background-image: url(../images/header01.jpg);
  background-position: left center;
}

.small-title {
  font-size: 4.35rem;
  border: none;
  text-shadow: 0px 0px 1px rgba(0, 0, 0, 0.4);
}
.small-title span.smallTxt {
  font-size: 2.25rem;
}
@media screen and (max-width: 600px), print {
  .small-title span.smallTxt {
    font-size: 1rem;
  }
}

.large-title h1 {
  font-size: 5.1rem;
  border: none;
  text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.7);
}
.large-title h1 span.smallTxt {
  font-size: 2.7rem;
}
@media screen and (max-width: 600px), print {
  .large-title h1 span.smallTxt {
    font-size: 1.2rem;
  }
}

/* imustat */
.imustatNav, .imustatNav div.menu ul li {
  font-family: 'Sawarabi Mincho', serif;
}

.imustatNav div.menu ul {
  margin-top: 30px;
}
.imustatNav div.menu ul li {
  font-size: 1.3rem;
  margin: 5px 10px;
  min-width: 200px;
}

.imustat {
  font-family: 'Sawarabi Mincho', serif;
  font-size: 1.4rem;
  background: #fff;
}
.imustat ul, .imustat article {
  clear: both;
}
.imustat article {
  margin: 10px 0;
}
.imustat article li {
  display: none;
}
.imustat a.open {
  cursor: pointer;
}

.imustatLogo {
  margin-top: 5px;
}

.imustatLogo span.icon {
  font-size: 5rem;
}

.imusutat-top article {
  position: relative;
}
.imusutat-top article a {
  color: #fff;
  text-shadow: #000 1px 1px 3px;
}
.imusutat-top article a:hover {
  color: #DDCC22;
}
.imusutat-top h4 {
  position: absolute;
  top: -50px;
  left: 10px;
  cursor: pointer;
}

.progress {
  width: 100%;
  height: 20px;
  position: relative;
  border: 1px solid #999;
  border-radius: 3px;
  background: #ff3232;
  /* Old browsers */
  /* FF3.6-15 */
  /* Chrome10-25,Safari5.1-6 */
  background: -webkit-gradient(linear, left top, right top, from(#ff3232), color-stop(50%, #fff838), to(#38ddff));
  background: linear-gradient(to right, #ff3232 0%, #fff838 50%, #38ddff 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff3232', endColorstr='#38ddff',GradientType=1 );
  /* IE6-9 */
}

.bar {
  height: 18px;
  padding-bottom: 5px;
  position: absolute;
  top: 0;
  right: 0;
  background: #fff;
}
.bar span {
  position: relative;
  top: 18px;
  left: -15px;
}

.imustat-page {
  width: 100%;
  height: 100%;
  background: #000;
  text-align: center;
}
.imustat-page .swiper-container {
  height: 100%;
  position: relative;
}
.imustat-page .swiper-slide section {
  width: 100%;
  padding: 45px 20px;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.7)));
  background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7));
  background: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7));
  color: #fff;
  text-shadow: #000 1px 1px 3px;
  text-align: center;
  position: absolute;
  bottom: 0;
  margin: auto;
}
.imustat-page .swiper-slide section h4 {
  max-width: 420px;
  margin: 0 auto;
  font-size: 1.8rem;
  text-align: left;
}
.imustat-page .swiper-slide section p {
  max-width: 420px;
  margin: 0 auto;
  text-align: left;
}
.imustat-page .swiper-pagination-bullet {
  width: 20px;
  height: 20px;
  text-align: center;
  line-height: 20px;
  font-size: 12px;
  color: #fff;
  opacity: 1;
  background: rgba(0, 0, 0, 0.2);
}
.imustat-page .swiper-pagination-bullet-active {
  color: #000;
  background: white;
}

/* icomoon ------------------------------- */
@font-face {
  font-family: 'icomoon';
  src: url("../fonts/icomoon.eot?90ph2d");
  src: url("../fonts/icomoon.eot?90ph2d#iefix") format("embedded-opentype"), url("../fonts/icomoon.ttf?90ph2d") format("truetype"), url("../fonts/icomoon.woff?90ph2d") format("woff"), url("../fonts/icomoon.svg?90ph2d#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  font-size: 140%;
  vertical-align: -0.2em;
  color: #2E4971;
  margin-right: 0.2rem;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-logo_black:before {
  content: "\e900";
}

.icon-logo_line:before {
  content: "\e901";
  font-size: 100%;
}

.icon-add_box:before {
  content: "\e146";
}

.icon-photo_library:before {
  content: "\e413";
}

.icon-palette:before {
  content: "\e40a";
}

.icon-date_range:before {
  content: "\e916";
}

.icon-description:before {
  content: "\e873";
}

.icon-exit_to_app:before {
  content: "\e879";
}

.icon-filter:before {
  content: "\e3d3";
}

.icon-home3:before {
  content: "\e902";
}

.icon-file-text2:before {
  content: "\e926";
}

.icon-spinner:before {
  content: "\e97a";
}

.icon-leaf:before {
  content: "\e9a4";
}

.icon-link:before {
  content: "\e9cb";
}

.icon-attachment:before {
  content: "\e9cd";
}

.icon-star-empty:before {
  content: "\e9d7";
}

.icon-star-full:before {
  content: "\e9d9";
}

.icon-heart:before {
  content: "\e9da";
}

.icon-evil:before {
  content: "\e9ef";
}

.icon-evil2:before {
  content: "\e9f0";
}

.icon-hipster:before {
  content: "\e9f9";
}

.icon-hipster2:before {
  content: "\e9fa";
}

.icon-point-up:before {
  content: "\ea03";
}

.icon-point-right:before {
  content: "\ea04";
}

.icon-point-down:before {
  content: "\ea05";
}

.icon-point-left:before {
  content: "\ea06";
}

.icon-notification:before {
  content: "\ea08";
}

.icon-question:before {
  content: "\ea09";
}

.icon-checkbox-checked:before {
  content: "\ea52";
}

.icon-checkbox-unchecked:before {
  content: "\ea53";
}

.icon-share:before {
  content: "\ea7d";
}

.icon-embed2:before {
  content: "\ea80";
}

.icon-share2:before {
  content: "\ea82";
}

.icon-twitter:before {
  content: "\ea96";
}

/* color ------------------------------- */
body.web a {
  color: #4C4971;
}
body.web h2 {
  border-left: 10px solid #4C4971;
}
body.web th {
  background: #4C4971;
}
body.web div.att {
  border: solid 3px #4C4971;
}
body.web div.att .boxTitle {
  background: #4C4971;
}
body.web [class^="icon-"], body.web [class*=" icon-"] {
  color: #4C4971;
}

.small-title span.icon, .large-title span.icon {
  color: #FFFFFF;
}

/* drawer ------------------------------- */
#wrapper {
  width: 100%;
  height: 100%;
}

#nav-drawer {
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 9999;
  height: 100%;
  text-align: center;
}

.drawer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
  height: 70px;
  padding: 0 1em;
}

@-webkit-keyframes show {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes show {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes hidden {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes hidden {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.menu_txt, .close_txt {
  color: #DDCC22;
  font-size: 1.2rem;
}

.menu_txt {
  display: block;
}
.menu_txt.open {
  display: none;
}

.close_txt {
  display: none;
}
.close_txt.open {
  display: block;
}

.navbar_toggle {
  z-index: 9999;
  cursor: pointer;
}

.navbar_toggle_icon {
  position: relative;
  display: block;
  height: 2px;
  width: 30px;
  background: #DDCC22;
  -webkit-transition: ease .5s;
  transition: ease .5s;
}

.navbar_toggle_icon:nth-child(1) {
  top: 0;
}

.navbar_toggle_icon:nth-child(2) {
  margin: 8px 0;
}

.navbar_toggle_icon:nth-child(3) {
  top: 0;
}

/*OPEN時の動き*/
.navbar_toggle.open .navbar_toggle_icon:nth-child(1) {
  top: 10px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.navbar_toggle.open .navbar_toggle_icon:nth-child(2) {
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  opacity: 0;
}

.navbar_toggle.open .navbar_toggle_icon:nth-child(3) {
  top: -10px;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

.menu {
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  -webkit-transition: ease .5s;
  transition: ease .5s;
  z-index: 1000;
  background: #F2EFED;
  height: 100%;
  max-width: 300px;
  position: absolute;
  top: 0;
}

.menu ul li {
  padding: 0 50px;
  list-style: none;
  font-size: 3rem;
  font-family: "VT323";
}
.menu ul li:after {
  content: '';
  width: 40px;
  height: 1px;
  background: #ddd;
  display: block;
  margin: 10px auto 0 auto;
}
@media screen and (max-width: 600px), print {
  .menu ul li {
    font-size: 2rem;
  }
}

/*OPEN時の動き*/
.menu.open {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

nav .logo {
  font-size: 10rem;
}

.nav-close div {
  display: none;
  /*はじめは隠しておく*/
  position: fixed;
  top: 0;
  /*全体に広がるように*/
  left: 0;
  width: 0;
  height: 100%;
  background: black;
  opacity: 0;
}

/* class="active"で動作 */
.nav-close div.active {
  display: block;
  opacity: 0.5;
  width: 100%;
  z-index: 99;
  -webkit-animation: navOn .3s linear 0s;
          animation: navOn .3s linear 0s;
}

@-webkit-keyframes navOn {
  from {
    opacity: 0;
  }
  to {
    opacity: 0.5;
  }
}

@keyframes navOn {
  from {
    opacity: 0;
  }
  to {
    opacity: 0.5;
  }
}
