@charset "UTF-8";
@keyframes line_x {
  0% {
    width: 0; }
  100% {
    width: 100vw; } }
@keyframes line_x_02 {
  0% {
    width: 0; }
  100% {
    width: 132.8125vw; } }
@keyframes line_x_03 {
  0% {
    width: 0; }
  100% {
    width: 93.75vw; } }
@keyframes line_x_04 {
  0% {
    width: 0; }
  100% {
    width: 109.375vw; } }
@keyframes line_x_05 {
  0% {
    width: 0; }
  100% {
    width: 14.84375vw; } }
@keyframes line_x_05_sp {
  0% {
    width: 0; }
  100% {
    width: 21.3333333333vw; } }
@keyframes contact_item_line {
  0% {
    width: 0; }
  100% {
    width: 8.59375vw; } }
@keyframes works_item_line {
  0% {
    width: 0; }
  100% {
    width: 140.625vw; } }
@keyframes line_time {
  0% {
    width: 0; }
  100% {
    width: 150vw; } }
@keyframes line_y {
  0% {
    height: 0; }
  100% {
    height: 100%;
    min-height: 100vh; } }
@keyframes move_right {
  0% {
    left: -101%; }
  100% {
    left: 0; } }
@keyframes fade_in {
  0% {
    width: 0px;
    opacity: 0; }
  50% {
    width: 20%;
    opacity: 1; }
  100% {
    opacity: 1;
    width: 100%; } }
@keyframes black_slide {
  0% {
    left: -101%; }
  100% {
    left: 101%; } }
.fadeup {
  filter: alpha(opacity=0);
  -moz-opacity: 0.0;
  -khtml-opacity: 0.0;
  opacity: 0.0;
  filter: none/9;
  transform: translate(0, 30px);
  -webkit-transform: translate(0, 2.34375vw);
  -webkit-transition: all 0.7s ease;
  transition: all 0.7s ease; }

.fadeup_on {
  filter: alpha(opacity=100);
  -moz-opacity: 1.00;
  -khtml-opacity: 1.00;
  opacity: 1.00;
  filter: none/9;
  transform: translate3D(0, 0px, 0);
  -webkit-transform: translate3D(0, 0px, 0); }

.fadeleft {
  filter: alpha(opacity=0);
  -moz-opacity: 0.0;
  -khtml-opacity: 0.0;
  opacity: 0.0;
  filter: none/9;
  transform: translate(0, 30px);
  -webkit-transform: translate(2.34375vw, 0px);
  -webkit-transition: all 0.7s ease;
  transition: all 0.7s ease; }

.fadeleft_on {
  filter: alpha(opacity=100);
  -moz-opacity: 1.00;
  -khtml-opacity: 1.00;
  opacity: 1.00;
  filter: none/9;
  transform: translate(0, 0px);
  -webkit-transform: translate(0, 0px); }

.black_slide {
  display: inline-block;
  position: relative;
  overflow: hidden; }
  .black_slide span {
    display: inline-block;
    overflow: hidden;
    opacity: 0; }
  .black_slide:before {
    content: '';
    background: #000;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: -101%; }
  .black_slide.motion.motion_on span {
    animation-name: fade_in;
    animation-delay: 0.5s;
    animation-duration: 0.8s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards; }
  .black_slide.motion.motion_on:before {
    animation-name: black_slide;
    animation-delay: 0.5s;
    animation-duration: 0.8s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: none; }

/*---------------------------------------------
  common html
---------------------------------------------*/
body {
  font-family: gill-sans-nova, sans-serif;
  font-weight: 600;
  line-height: 1;
  min-width: 320px;
  -webkit-text-size-adjust: 100%;
  color: #000000;
  width: 100%;
  overflow-x: hidden;
  font-size: 1.328125vw; }

a:link, a:hover, a:visited, a:active {
  text-decoration: none;
  color: #000000; }
a.underline {
  text-decoration: underline; }

.container {
  display: flex; }

header {
  position: relative;
  z-index: 100;
  width: 14.0625vw;
  text-align: center; }
  header h1 {
    padding: 1.5625vw 0px 1.5625vw 0; }
    header h1 img {
      width: 6.25vw; }
  header .menu {
    display: none; }
  header nav {
    position: relative; }
    header nav ul {
      margin: 0 auto;
      text-align: center; }
      header nav ul li {
        font-family: gill-sans-nova, sans-serif;
        font-weight: 600;
        font-style: italic;
        margin-bottom: 5.46875vw; }
        header nav ul li a {
          position: relative;
          display: inline-block;
          padding: 0 0.15625vw;
          overflow: hidden; }
          header nav ul li a:before {
            content: '';
            background: #000;
            width: 100%;
            height: 100%;
            display: block;
            position: absolute;
            top: 0;
            -webkit-transition: 0.1s;
            -o-transition: 0.1s;
            transition: 0.1s;
            left: -101%; }
        header nav ul li a:hover:before {
          left: 0; }

main {
  width: 85.9375vw; }

.vision header {
  position: relative; }
  .vision header nav ul li:nth-of-type(1) {
    position: relative; }
    .vision header nav ul li:nth-of-type(1) a:before {
      left: 0; }
    .vision header nav ul li:nth-of-type(1):after {
      content: "";
      height: 2px;
      width: 0;
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      -webkit-transform: translateY(-50%);
      left: 0px;
      background-color: #000;
      /*@include animation;
      animation-name: line_x;*/ }
  .vision header nav ul.motion.motion_on li:nth-of-type(1):after {
    animation-delay: 0.1s;
    animation-duration: 0.5s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-name: line_x; }
.vision main {
  padding: 10.9375vw 14.84375vw 11.71875vw 0;
  position: relative;
  box-sizing: border-box;
  text-align: right; }
  .vision main .red_circle {
    width: 5.3125vw;
    height: 5.3125vw;
    position: absolute;
    top: 42.1875vw;
    right: 9.21875vw;
    overflow: hidden; }
    .vision main .red_circle:before {
      content: "";
      position: absolute;
      top: 0;
      left: 101%;
      width: 100%;
      height: 100%;
      border-radius: 50%;
      background-color: #EE210D; }
    .vision main .red_circle.motion_on:before {
      animation-delay: 0.1s;
      animation-duration: 0.5s;
      animation-timing-function: ease-in;
      animation-iteration-count: 1;
      animation-direction: normal;
      animation-fill-mode: forwards;
      animation-duration: 0.3s;
      animation-delay: 1.2s;
      animation-name: move_right; }
  .vision main:before {
    content: "";
    width: 3px;
    height: 0;
    position: absolute;
    top: 0;
    right: 11.71875vw;
    background-color: #EE210D; }
  .vision main.motion.motion_on:before {
    animation-delay: 0.1s;
    animation-duration: 0.5s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-name: line_y; }
.vision .catch_01 {
  font-family: gill-sans-nova, sans-serif;
  font-weight: 600;
  font-style: normal;
  margin-bottom: 3.90625vw;
  display: inline-block;
  text-align: left; }
  .vision .catch_01 p:nth-of-type(1) {
    font-size: 7.5vw; }
  .vision .catch_01 p:nth-of-type(2) {
    font-size: 3.75vw; }
  .vision .catch_01 .sub_catch .black_slide span {
    animation-delay: 0.75s; }
  .vision .catch_01 .sub_catch .black_slide:before {
    animation-delay: 0.75s; }
  .vision .catch_01 .sub_catch .black_slide:last-child {
    float: right; }
.vision .catch_02 {
  font-family: gill-sans-nova, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.1875vw;
  line-height: 1.5em;
  margin-bottom: 3.90625vw; }
.vision .catch_03 {
  font-family: yu-mincho-36p-kana, sans-serif;
  font-weight: 400;
  position: relative;
  font-size: 1.40625vw;
  text-align: left;
  /*padding-left: get_vw(685,1280);*/
  text-align: right; }
  .vision .catch_03 span {
    text-align: left; }
  .vision .catch_03:after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    width: 0;
    height: 2px;
    background-color: #000;
    left: 71.875vw; }
  .vision .catch_03.motion.motion_on:after {
    animation-delay: 0.1s;
    animation-duration: 0.5s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-name: line_x_05; }
  .vision .catch_03 .black_slide span {
    animation-delay: 1.0s; }
  .vision .catch_03 .black_slide:before {
    animation-delay: 1.0s; }

.about header nav ul li:nth-of-type(2) {
  position: relative; }
  .about header nav ul li:nth-of-type(2) a:before {
    left: 0; }
.about .container {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  overflow: hidden; }
  .about .container.motion.motion_on:after {
    content: "";
    width: 0;
    height: 2px;
    background-color: #000;
    position: absolute;
    top: -1px;
    left: 57.421875vw;
    transform: rotate(33.75deg);
    -webkit-transform: rotate(33.75deg);
    transform-origin: left top;
    animation-delay: 0.1s;
    animation-duration: 0.5s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-name: line_x; }
  .about .container.motion.motion_on:before {
    content: "";
    width: 0;
    height: 2px;
    background-color: #000;
    position: absolute;
    top: 11.328125vw;
    left: -1px;
    transform: rotate(33.75deg) translateY(-50%);
    -webkit-transform: rotate(33.75deg) translateY(-50%);
    transform-origin: left top;
    animation-delay: 0.1s;
    animation-duration: 0.5s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-name: line_x_02;
    z-index: 100; }
.about .kv {
  width: 85.9634551495vw;
  height: 39.4518272425vw;
  position: relative;
  z-index: 0; }
  .about .kv > img {
    position: relative;
    z-index: 1; }
  .about .kv #kv_01, .about .kv #kv_02, .about .kv #kv_03 {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    -webkit-transition: all .8s;
    transition: all .8s;
    -moz-transition: all .8s;
    -webkit-transition: all .8s;
    -o-transition: all .8s;
    -ms-transition: all .8s;
    z-index: 2;
    opacity: 0;
    pointer-events: none; }
    .about .kv #kv_01.active, .about .kv #kv_02.active, .about .kv #kv_03.active {
      opacity: 1; }
  .about .kv area {
    position: relative;
    z-index: 3; }
.about .kv_sp {
  display: none; }
.about .text {
  padding: 1.8687707641vw 0 1.6611295681vw 2.0764119601vw;
  font-family: yu-mincho-36p-kana, sans-serif;
  font-weight: 400;
  font-size: 0.859375vw;
  line-height: 1.2em;
  white-space: nowrap; }

.works {
  position: relative; }
  .works .container {
    overflow: hidden; }
  .works header nav ul {
    position: relative; }
    .works header nav ul li:nth-of-type(3) {
      position: relative; }
      .works header nav ul li:nth-of-type(3):before {
        content: "";
        width: 0;
        height: 2px;
        background-color: #000;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        left: 0; }
      .works header nav ul li:nth-of-type(3) span {
        position: relative;
        display: inline-block; }
        .works header nav ul li:nth-of-type(3) span:before {
          content: "";
          /*width: get_vw(1190,1280); */
          width: 0;
          height: 2px;
          background-color: #000;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: rotate(-30deg) translateY(-50%);
          -webkit-transform: rotate(-30deg) translateY(-50%);
          transform-origin: left top;
          z-index: -1; }
        .works header nav ul li:nth-of-type(3) span:after {
          content: "";
          /*width: get_vw(1380,1280);*/
          width: 0;
          height: 2px;
          background-color: #000;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: rotate(30deg) translateY(-50%);
          -webkit-transform: rotate(30deg) translateY(-50%);
          transform-origin: left top;
          z-index: -1; }
        .works header nav ul li:nth-of-type(3) span span {
          position: relative; }
          .works header nav ul li:nth-of-type(3) span span:before {
            content: "";
            /*width: get_vw(1280,1280);*/
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: rotate(-15deg) translateY(-50%);
            -webkit-transform: rotate(-15deg) translateY(-50%);
            transform-origin: left bottom;
            z-index: -1; }
          .works header nav ul li:nth-of-type(3) span span:after {
            content: "";
            /*width: get_vw(1280,1280);*/
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: rotate(15deg) translateY(-50%);
            -webkit-transform: rotate(15deg) translateY(-50%);
            transform-origin: left bottom;
            z-index: -1; }
      .works header nav ul li:nth-of-type(3) a:before {
        left: 0; }
    .works header nav ul.motion.motion_on li:nth-of-type(3) {
      position: relative; }
      .works header nav ul.motion.motion_on li:nth-of-type(3):before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x; }
      .works header nav ul.motion.motion_on li:nth-of-type(3) span:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x_03;
        animation-delay: 0.2s; }
      .works header nav ul.motion.motion_on li:nth-of-type(3) span:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x_04;
        animation-delay: 0.2s; }
      .works header nav ul.motion.motion_on li:nth-of-type(3) span span:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x;
        animation-delay: 0.2s; }
      .works header nav ul.motion.motion_on li:nth-of-type(3) span span:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x;
        animation-delay: 0.2s; }
  .works main {
    padding: 3.90625vw 0 7.8125vw 0;
    z-index: 100; }
    .works main ul {
      width: 76.5625vw;
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      position: relative; }
      .works main ul li {
        width: 36.71875vw;
        height: 20.703125vw;
        margin-bottom: 3.125vw;
        position: relative;
        z-index: 1; }
        .works main ul li > div {
          width: 100%;
          height: 100%; }
        .works main ul li .image {
          position: relative;
          width: 100%;
          height: 100%;
          position: relative;
          background-color: #000; }
          .works main ul li .image a {
            width: 100%;
            height: 100%;
            display: block;
            overflow: hidden;
            position: relative;
            z-index: 5; }
            .works main ul li .image a img {
              display: block;			
              -webkit-transition: all .5s;
              transition: all .5s;
              -moz-transition: all .5s;
              -webkit-transition: all .5s;
              -o-transition: all .5s;
              -ms-transition: all .5s;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit-transform: translateY(-50%) translateX(-50%);
              z-index: 5; }
              .works main ul li .image a img:hover {
                transform: scale(1.1) translateY(-45%) translateX(-45%);
                /*画像の拡大率*/
                -webkit-transition: all .5s;
                transition: all .5s;
                -moz-transition: all .5s;
                -webkit-transition: all .5s;
                -o-transition: all .5s;
                -ms-transition: all .5s;
                opacity: 0.5; }
      .works main ul li:nth-child(20n + 10) {
        position: relative;
        z-index: 0; }
        .works main ul li:nth-child(20n + 10):before {
          content: "";
          width: 0;
          height: 2px;
          background-color: #000;
          position: absolute;
          bottom: -1.5625vw;
          right: -17.1875vw; }
        .works main ul li:nth-child(20n + 10) > div {
          position: relative; }
          .works main ul li:nth-child(20n + 10) > div:before {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            right: -17.1875vw;
            transform: rotate(30deg);
            -webkit-transform: rotate(30deg);
            transform-origin: right top; }
          .works main ul li:nth-child(20n + 10) > div:after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            right: -17.1875vw;
            transform: rotate(-30deg);
            -webkit-transform: rotate(-30deg);
            transform-origin: right top; }
        .works main ul li:nth-child(20n + 10) > div > div {
          position: relative; }
          .works main ul li:nth-child(20n + 10) > div > div:before {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            right: -17.1875vw;
            transform: rotate(15deg);
            -webkit-transform: rotate(15deg);
            transform-origin: right top; }
          .works main ul li:nth-child(20n + 10) > div > div:after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            right: -17.1875vw;
            transform: rotate(-15deg);
            -webkit-transform: rotate(-15deg);
            transform-origin: right top; }
      .works main ul li.scrl_on:nth-child(20n + 10):before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n + 10) > div:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n + 10) > div:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n + 10) > div > div:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n + 10) > div > div:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li:nth-child(20n+21) {
        position: relative;
        z-index: 0; }
        .works main ul li:nth-child(20n+21):before {
          content: "";
          width: 0;
          height: 2px;
          background-color: #000;
          position: absolute;
          top: -1.5625vw;
          left: -17.1875vw; }
        .works main ul li:nth-child(20n+21) > div {
          position: relative; }
          .works main ul li:nth-child(20n+21) > div:before {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            top: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(30deg);
            -webkit-transform: rotate(30deg);
            transform-origin: left top; }
          .works main ul li:nth-child(20n+21) > div:after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            top: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(-30deg);
            -webkit-transform: rotate(-30deg);
            transform-origin: left top; }
        .works main ul li:nth-child(20n+21) > div > div {
          position: relative; }
          .works main ul li:nth-child(20n+21) > div > div:before {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            top: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(15deg);
            -webkit-transform: rotate(15deg);
            transform-origin: left top; }
          .works main ul li:nth-child(20n+21) > div > div:after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            top: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(-15deg);
            -webkit-transform: rotate(-15deg);
            transform-origin: left top; }
      .works main ul li.scrl_on:nth-child(20n+21):before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n+21) > div:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n+21) > div:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n+21) > div > div:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(20n+21) > div > div:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
  .works .works_item {
    /*font-family: "Helvetica Neue",
    	Arial,
    	"Hiragino Kaku Gothic ProN",
    	"Hiragino Sans",
    	Meiryo,
    	sans-serif;*/
    font-family: "游明朝", YuMincho, "Hiragino Mincho ProN W3", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    font-weight: normal;
    background: #FFF;
    padding: 3.125vw;
    text-align: left;
    max-width: 46.875vw;
    margin: 3.125vw auto;
    position: relative; }
    .works .works_item .dismiss {
      position: absolute;
      width: 1.5625vw;
      top: 1.171875vw;
      right: 1.171875vw; }
    .works .works_item .movie {
      position: relative;
      height: 0;
      padding: 0 0 56.25%;
      overflow: hidden;
      margin-bottom: 3.125vw; }
      .works .works_item .movie iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        max-width: 100%; }
    .works .works_item .title {
      font-size: 1.2em;
      margin-bottom: 1.953125vw;
      line-height: 1.5em; }
      .works .works_item .client {
        font-size: 0.8em;
        margin-bottom: 10px; }
    .works .works_item .description {
      line-height: 2em;
      font-size: 14px; }

.contact {
  position: relative; }
  .contact .black_slide {
    line-height: 1.3em;
    white-space: nowrap; }
  .contact header {
    position: relative; }
    .contact header nav ul li:nth-of-type(4) {
      position: relative; }
      .contact header nav ul li:nth-of-type(4) a:before {
        left: 0; }
      .contact header nav ul li:nth-of-type(4):after {
        content: "";
        height: 2px;
        width: 0;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        left: 0px;
        background-color: #000; }
    .contact header nav ul.motion.motion_on li:nth-of-type(4):after {
      animation-delay: 0.1s;
      animation-duration: 0.5s;
      animation-timing-function: ease-in;
      animation-iteration-count: 1;
      animation-direction: normal;
      animation-fill-mode: forwards;
      animation-name: line_x; }
  .contact main {
    position: relative; }
    .contact main:before {
      content: "";
      width: 1px;
      height: 0;
      position: absolute;
      top: 0;
      right: 11.71875vw;
      background-color: #000; }
    .contact main.motion.motion_on:before {
      animation-delay: 0.1s;
      animation-duration: 0.5s;
      animation-timing-function: ease-in;
      animation-iteration-count: 1;
      animation-direction: normal;
      animation-fill-mode: forwards;
      animation-name: line_y; }
    .contact main .contact_item {
      padding: 10.9375vw 0 0 21.09375vw;
      font-size: 1.40625vw; }
      .contact main .contact_item li {
        margin-bottom: 2.5vw; }
        .contact main .contact_item li > a {
          display: block;
          position: relative;
          padding-left: 14.0625vw; }
          .contact main .contact_item li > a:before {
            content: "";
            width: 0;
            height: 1px;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            -webkit-transform: translateY(-50%);
            left: 0;
            background-color: #000; }
          .contact main .contact_item li > a.motion.motion_on:before {
            animation-delay: 0.1s;
            animation-duration: 0.5s;
            animation-timing-function: ease-in;
            animation-iteration-count: 1;
            animation-direction: normal;
            animation-fill-mode: forwards;
            animation-name: contact_item_line; }
        .contact main .contact_item li:nth-child(2) .black_slide span {
          animation-delay: 0.7s; }
        .contact main .contact_item li:nth-child(2) .black_slide:before {
          animation-delay: 0.7s; }
        .contact main .contact_item li:nth-child(3) .black_slide span {
          animation-delay: 0.9s; }
        .contact main .contact_item li:nth-child(3) .black_slide:before {
          animation-delay: 0.9s; }
    .contact main .time {
      position: absolute;
      top: 26.5625vw;
      right: 8.828125vw;
      font-size: 2.578125vw;
      line-height: 1em;
      white-space: nowrap; }
      .contact main .time .black_slide span {
        animation-delay: 1.1s; }
      .contact main .time .black_slide:before {
        animation-delay: 1.1s; }
      .contact main .time #hour {
        margin-right: 0.625vw; }
    .contact main .outline {
      font-size: 0.9375vw;
      text-align: right;
      padding: 9.375vw 18.75vw 1.5625vw 0;
      font-family: yu-mincho-36p-kana, sans-serif;
      font-weight: 400; }
      .contact main .outline .outline_inner {
        display: inline-block;
        text-align: center; }
      .contact main .outline .company {
        margin-bottom: 1.875vw; }
      .contact main .outline dl dt {
        margin-bottom: 0.390625vw; }
    .contact main .sns {
      position: absolute;
      width: 5.15625vw;
      bottom: 0vw;
      right: 3.125vw; }
      .contact main .sns li {
        font-size: 1.953125vw;
        text-align: center;
        margin-top: 1.5625vw; }
        .contact main .sns li a {
          display: block; }

@media screen and (max-width: 1023px), print {
  body {
    font-size: 14px; }

  .container {
    display: block; }

  header {
    position: absolute !important;
    width: 100vw;
    text-align: center; }
    header h1 {
      text-align: left;
      padding: 20px; }
      header h1 img {
        width: 100px; }
    header .menu {
      display: block;
      width: 50px;
      height: 50px;
      position: fixed;
      right: 10px;
      top: 0px;
      z-index: 102;
      padding: 15px 10px;
      box-sizing: border-box; }
    header .menu__line {
      background-color: #000;
      display: block;
      width: 100%;
      height: 2px;
      position: relative;
      -webkit-transition: all 0.6s ease !important;
      transition: all 0.6s ease !important; }
    header .menu__line--center {
      margin-top: 8px; }
    header .menu__line--bottom {
      margin-top: 8px; }
    header .menu__line.active {
      background: #000; }
    header .menu__line--top.active {
      top: 10px;
      transform: rotate(45deg); }
    header .menu__line--center.active {
      transform: scaleX(0); }
    header .menu__line--bottom.active {
      bottom: 10px;
      transform: rotate(135deg); }
    header .gnav {
      position: fixed;
      top: 0;
      left: 0;
      background-color: rgba(255, 255, 255, 0.9);
      width: 100%;
      height: 100%;
      display: none; }
    header nav {
      display: flex;
      align-items: center;
      width: 100%;
      height: 100%; }
      header nav ul li {
        font-size: 30px;
        margin-bottom: 60px; }
        header nav ul li.motion.motion_on:before {
          display: none !important; }
        header nav ul li.motion.motion_on:after {
          display: none !important; }
        header nav ul li a:before {
          display: none !important; }
        header nav ul li a:after {
          display: none !important; }
      header nav ul.motion.motion_on li:before {
        display: none !important; }
      header nav ul.motion.motion_on li:after {
        display: none !important; }
      header nav ul.motion.motion_on li span:before {
        display: none !important; }
      header nav ul.motion.motion_on li span:after {
        display: none !important; }

  main {
    width: 100vw;
    box-sizing: border-box; }

  .vision {
    height: 100%; }
    .vision main {
      padding-top: 150px; }
      .vision main .red_circle {
        top: 63.4765625vw; }
    .vision .catch_01 {
      margin-bottom: 5.859375vw; }
      .vision .catch_01 p:nth-of-type(1) {
        font-size: 7.8125vw; }
      .vision .catch_01 p:nth-of-type(2) {
        font-size: 5.859375vw; }
    .vision .catch_02 {
      font-size: 2.734375vw;
      line-height: 1.5em;
      margin-bottom: 5.859375vw; }
    .vision .catch_03 {
      font-size: 1.5625vw;
      text-align: right;
      /*padding-left: get_vw(670,1024);*/ }
      .vision .catch_03:after {
        left: 85.9375vw; }
      .vision .catch_03.motion.motion_on:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x_05_sp; }
      .vision .catch_03 .black_slide span {
        animation-delay: 1.0s; }
      .vision .catch_03 .black_slide:before {
        animation-delay: 1.0s; }

  .works main {
    padding: 100px 0; }
    .works main ul {
      width: 89vw;
      margin: 0 auto; }
      .works main ul li {
        width: 42vw;
        height: 23.625vw;
        margin-bottom: 3.90625vw; }
      .works main ul li:nth-child(1) {
        position: relative;
        z-index: 0; }
        .works main ul li:nth-child(1):before {
          content: "";
          width: 0;
          height: 2px;
          background-color: #000;
          position: absolute;
          bottom: -1.5625vw;
          left: -17.1875vw; }
        .works main ul li:nth-child(1) > div {
          position: relative; }
          .works main ul li:nth-child(1) > div:before {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(30deg);
            -webkit-transform: rotate(30deg);
            transform-origin: left top; }
          .works main ul li:nth-child(1) > div:after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(-30deg);
            -webkit-transform: rotate(-30deg);
            transform-origin: left top; }
        .works main ul li:nth-child(1) > div > div {
          position: relative; }
          .works main ul li:nth-child(1) > div > div:before {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(15deg);
            -webkit-transform: rotate(15deg);
            transform-origin: left top; }
          .works main ul li:nth-child(1) > div > div:after {
            content: "";
            width: 0;
            height: 2px;
            background-color: #000;
            position: absolute;
            bottom: -1.5625vw;
            left: -17.1875vw;
            transform: rotate(-15deg);
            -webkit-transform: rotate(-15deg);
            transform-origin: left top; }
      .works main ul li.scrl_on:nth-child(1):before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(1) > div:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(1) > div:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(1) > div > div:before {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
      .works main ul li.scrl_on:nth-child(1) > div > div:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: works_item_line; }
  .works .works_item {
    max-width: 62.5vw; }
    .works .works_item .movie {
      margin-bottom: 40px; }
    .works .works_item .title {
      font-size: 1.5em; }
    .works .works_item .description {
      line-height: 2em;
      font-size: 14px; }

  .about main {
    padding: 130px 0 80px 0; }
  .about .container.motion.motion_on:after {
    display: none; }
  .about .container.motion.motion_on:before {
    display: none; }
  .about .kv {
    display: none; }
  .about .kv_sp {
    display: block; }
    .about .kv_sp p img {
      vertical-align: top; }
  .about .text {
    padding: 8% 0 5% 5%;
    font-size: 14px; }

  .contact main:before {
    right: 14.6484375vw; }
  .contact main:after {
    content: "";
    width: 0;
    height: 2px;
    background-color: #000;
    position: absolute;
    top: 52.734375vw;
    left: 0; }
  .contact main.motion.motion_on:after {
    animation-delay: 0.1s;
    animation-duration: 0.5s;
    animation-timing-function: ease-in;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-fill-mode: forwards;
    animation-name: line_x; }
  .contact main .contact_item {
    padding: 19.53125vw 0 0 26.3671875vw;
    font-size: 1.7578125vw; }
    .contact main .contact_item li {
      margin-bottom: 3.125vw; }
      .contact main .contact_item li > a {
        padding-left: 17.578125vw; }
  .contact main .time {
    top: 48.828125vw;
    right: 11.03515625vw;
    font-size: 3.22265625vw; }
    .contact main .time #hour {
      margin-right: 0.78125vw; }
  .contact main .outline {
    font-size: 1.171875vw;
    padding: 23.4375vw 23.4375vw 1.953125vw 0; }
    .contact main .outline .company {
      margin-bottom: 2.34375vw; }
    .contact main .outline dl dt {
      margin-bottom: 0.48828125vw; }
  .contact main .sns {
    width: 6.4453125vw;
    bottom: 0vw;
    right: 3.90625vw; }
    .contact main .sns li {
      font-size: 2.44140625vw;
      margin-top: 1.953125vw; } }
@media screen and (max-width: 767px), print {
  .vision {
    height: 100%; }
    .vision main {
      padding-bottom: 40vw;
      padding-right: 22.6666666667vw; }
      .vision main .red_circle {
        width: 13.3333333333vw;
        height: 13.3333333333vw;
        top: 120vw;
        right: 9.3333333333vw; }
      .vision main:before {
        right: 16vw; }
    .vision .catch_01 {
      margin-bottom: 13.3333333333vw; }
      .vision .catch_01 p:nth-of-type(1) {
        font-size: 10.6666666667vw; }
      .vision .catch_01 p:nth-of-type(2) {
        font-size: 8vw; }
    .vision .catch_02 {
      font-size: 4.8vw;
      line-height: 1.5em;
      margin-bottom: 16vw; }
    .vision .catch_03 {
      font-size: 3.7333333333vw; }
      .vision .catch_03:after {
        left: 77.3333333333vw; }
      .vision .catch_03.motion.motion_on:after {
        animation-delay: 0.1s;
        animation-duration: 0.5s;
        animation-timing-function: ease-in;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-fill-mode: forwards;
        animation-name: line_x_05_sp; }
      .vision .catch_03 .black_slide span {
        animation-delay: 1.0s; }
      .vision .catch_03 .black_slide:before {
        animation-delay: 1.0s; }

  .works main {
    padding: 130px 0 7.8125vw 0;
    z-index: 100; }
    .works main ul {
      width: 80vw;
      display: block; }
      .works main ul li {
        margin-bottom: 5.3333333333vw;
        width: 80vw;
        height: 45vw; }
        .works main ul li > div {
          width: 100%;
          height: 100%; }
  .works .works_item {
    padding: 35px;
    max-width: 80%;
    margin: 40px auto; }
    .works .works_item .dismiss {
      position: absolute;
      width: 20px;
      top: 10px;
      right: 10px; }
    .works .works_item .title {
      margin-bottom: 25px; }

  .contact main {
    width: 100%; }
    .contact main:before {
      right: 80px; }
    .contact main:after {
      top: 440px;
      left: 0; }
    .contact main .contact_item {
      padding: 160px 0 0 15%;
      font-size: 18px; }
      .contact main .contact_item li {
        margin-bottom: 30px; }
        .contact main .contact_item li > a {
          padding-left: 17.578125vw; }
    .contact main .time {
      top: 400px;
      right: 45px;
      font-size: 30px; }
      .contact main .time #hour {
        margin-right: 10px; }
    .contact main .outline {
      font-size: 12px;
      padding: 150px 100px 20px 0; }
      .contact main .outline dl dt {
        margin-bottom: 0.48828125vw; }
    .contact main .sns {
      width: 6.4453125vw;
      bottom: 0vw;
      right: 3.90625vw; }
      .contact main .sns li {
        font-size: 20px;
        margin-top: 1.953125vw; } }



.notfound main {
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.notfound .catch_01 {
	font-size: 72px;
	margin-bottom: 40px;
}
.notfound .catch_02 {
	font-size: 32px;
	font-weight: 400;
}

#loading {
	top: 0;
	left: 0;
	position: fixed;
	width: 100%;
	height:100%;;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 999;
}
#loading svg {
	width: 160px;
	height: auto;
}
.st0, .st1, .st2, .st3 , .st4 {
	fill-opacity: 0;
	stroke-dasharray: 3000;
	stroke-dashoffset:3000;
	-webkit-animation: line 4s ease-in 0s forwards infinite;
	animation: line 4s ease-in 0s forwards infinite;
}
.st3 {
	fill-opacity: 1;
	-webkit-animation: line_white 4s ease-in 0s forwards;
	animation: line_white 4s ease-in 0s forwards;
}

@keyframes line{
	0%{stroke-dashoffset:3000;fill-opacity: 0;}
	20% {fill-opacity: 0;}
	40% {fill-opacity: 1;}
	100%{stroke-dashoffset:0;fill-opacity: 1;}
}
@-webkit-keyframes line{
	0%{stroke-dashoffset:3000;fill-opacity: 0;}
	20% {fill-opacity: 1;}
	40% {fill-opacity: 1;}
	100%{stroke-dashoffset:0;fill-opacity: 1;}
}
@keyframes line_white {
	0%{stroke-dashoffset:3000;}
	100%{stroke-dashoffset:0;}

}
@-webkit-keyframes line_white {
	0%{stroke-dashoffset:3000;}
	100%{stroke-dashoffset:0;}

}

