@charset "UTF-8";

@import url("./pc.css") screen and (min-width: 768px);

/* ------------------------------------
  transiton
------------------------------------ */
.tra03 {
  -webkit-transition: all 300ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all 300ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.tra05 {
  -webkit-transition: all 500ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all 500ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.tra08 {
  -webkit-transition: all 800ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all 800ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
}
.tra08p {
  -webkit-transition: all 800ms cubic-bezier(0.67, -0.03, 0.07, 1.5);
  transition: all 800ms cubic-bezier(0.67, -0.03, 0.07, 1.5);
}

.tra10 {
  -webkit-transition: all 1000ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
  transition: all 1000ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
}

.tra15 {
  -webkit-transition: all 1500ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
  transition: all 1500ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
}

.tra20 {
  -webkit-transition: all 2000ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
  transition: all 2000ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
}

.tra25 {
  -webkit-transition: all 2500ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
  transition: all 2500ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
}

.tra30 {
  -webkit-transition: all 3000ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
  transition: all 3000ms cubic-bezier(0.190, 1.000, 0.220, 1.000), opacity 200ms linear;
}

.tra40 {
  -webkit-transition: all 4000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all 4000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
}

.delay01 {
  -webkit-transition-delay: 100ms;
  transition-delay: 100ms;
}

.delay02 {
  -webkit-transition-delay: 200ms;
  transition-delay: 200ms;
}

.delay03 {
  -webkit-transition-delay: 300ms;
  transition-delay: 300ms;
}

.delay04 {
  -webkit-transition-delay: 400ms;
  transition-delay: 400ms;
}

.delay05 {
  -webkit-transition-delay: 500ms;
  transition-delay: 500ms;
}

.delay06 {
  -webkit-transition-delay: 600ms;
  transition-delay: 600ms;
}

.delay07 {
  -webkit-transition-delay: 700ms;
  transition-delay: 700ms;
}

.delay08 {
  -webkit-transition-delay: 800ms;
  transition-delay: 800ms;
}

.delay09 {
  -webkit-transition-delay: 900ms;
  transition-delay: 900ms;
}

.delay10 {
  -webkit-transition-delay: 1000ms;
  transition-delay: 1000ms;
}

.delay11 {
  -webkit-transition-delay: 1100ms;
  transition-delay: 1100ms;
}

.delay12 {
  -webkit-transition-delay: 1200ms;
  transition-delay: 1200ms;
}

.delay13 {
  -webkit-transition-delay: 1300ms;
  transition-delay: 1300ms;
}

.delay14 {
  -webkit-transition-delay: 1400ms;
  transition-delay: 1400ms;
}

.delay15 {
  -webkit-transition-delay: 1500ms;
  transition-delay: 1500ms;
}

.delay16 {
  -webkit-transition-delay: 1600ms;
  transition-delay: 1600ms;
}

.delay17 {
  -webkit-transition-delay: 1700ms;
  transition-delay: 1700ms;
}

.delay18 {
  -webkit-transition-delay: 1800ms;
  transition-delay: 1800ms;
}

.delay19 {
  -webkit-transition-delay: 1900ms;
  transition-delay: 1900ms;
}

.delay20 {
  -webkit-transition-delay: 2000ms;
  transition-delay: 2000ms;
}

/* ------------------------------------
  animation
------------------------------------ */
/* keyframes */
@-webkit-keyframes blinking {
  0%,100% { opacity: 1; }
  50% { opacity: 0.6; }
}
@keyframes blinking {
  0%,100% { opacity: 1; }
  50% { opacity: 0.6; }
}

@-webkit-keyframes down {
  0% {
    height: 100%;
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  35% {
    height: 100%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  35.1% {
    height: 100%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
  70%, 100% {
    height: 100%;
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}
@keyframes down {
  0% {
    height: 100%;
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  35% {
    height: 100%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }
  35.1% {
    height: 100%;
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
  70%, 100% {
    height: 100%;
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}

@-webkit-keyframes s_line {
  0%,80% { height: 0; top: 0; }
  90% { height: 100%; top: 0; background-color: #777;}
  100% { height: 100%; top: 100%; background-color: #4d4d4d;}
}
@keyframes s_line {
  0%,80% { height: 0; top: 0; }
  90% { height: 100%; top: 0; background-color: #777;}
  100% { height: 100%; top: 100%; background-color: #4d4d4d;}
}

@-webkit-keyframes s1 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(-360deg);
    transform: rotate(-360deg);
  }
}
@keyframes s1 {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(-360deg);
    transform: rotate(-360deg);
  }
}
@-webkit-keyframes s2 {
  0% {
    -webkit-transform: rotate(120deg);
    transform: rotate(120deg);
  }
  100% {
    -webkit-transform: rotate(-240deg);
    transform: rotate(-240deg);
  }
}
@keyframes s2 {
  0% {
    -webkit-transform: rotate(120deg);
    transform: rotate(120deg);
  }
  100% {
    -webkit-transform: rotate(-240deg);
    transform: rotate(-240deg);
  }
}
@-webkit-keyframes s3 {
  0% {
    -webkit-transform: rotate(210deg);
    transform: rotate(210deg);
  }
  100% {
    -webkit-transform: rotate(-150deg);
    transform: rotate(-150deg);
  }
}
@keyframes s3 {
  0% {
    -webkit-transform: rotate(210deg);
    transform: rotate(210deg);
  }
  100% {
    -webkit-transform: rotate(-150deg);
    transform: rotate(-150deg);
  }
}

/* .js */
.js-appear_acco {
  opacity: 0;
  -webkit-transform: translate3d(0,50px,0);
  transform: translate3d(0,50px,0);
}
.open .js-appear_acco {
  opacity: 1;
  -webkit-transform: translate3d(0,0,0);
  transform: translate3d(0,0,0);
}

.js-appear_per {
  -webkit-transform: rotateX(60deg) rotateY(270deg) scale(0.1) translate3d(0,600px,0);
  transform: rotateX(60deg) rotateY(270deg) scale(0.1) translate3d(0,600px,0);
  -webkit-transition-property: transform opacity;
  transition-property: transform opacity;
  -webkit-transform-origin: top center;
  transform-origin: top center;
}
.on .js-appear_per,
.on.js-appear_per {
  -webkit-transform: rotateX(0deg) rotateY(0deg) scale(1) translate3d(0,0,0);
  transform: rotateX(0deg) rotateY(0deg) scale(1) translate3d(0,0,0);
}


/* ------------------------------------
  all
------------------------------------ */
html, body {
  color: #fff;
  background-color: #000;
  font-family: "YuGothic", "游ゴシック", "ヒラギノ角ゴ Pro W3", "HiraKakuPro-W3", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", sans-serif;
  font-size: 14px;
  font-weight: normal;
  line-height: 26px;
  letter-spacing: 0.062em;
  width: 100%;
  height: auto;
  position: relative;
  -webkit-text-size-adjust: 100%;
  -webkit-overscroll-behavior: none;
  overscroll-behavior: none;
  overflow: -moz-scrollbars-none;
  font-feature-settings: "palt";
}

body.debug:before,
body.debug:after {
  content: "";
  width: 1px;
  height: 100%;
  background-color: yellow;
  position: fixed;
  top: 0;
  z-index: 999;
}
body.debug:before {
  left: 20px;
}
body.debug:after {
  right: 20px;
}

a {
  color: #fff;
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

li {
  list-style-type: none;
}

h2,h3 {
  font-weight: normal;
}

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

.clearfix {
  zoom: 1;
}

img {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

.hidden {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}

.forpc {
  display: none;
}

.forsp {
  display: block;
}

input, textarea {
  -webkit-appearance: none;
  -webkit-border-radius: 0;
  border-radius: 0;
}

::-moz-selection{
  color: #000;
  background-color: #fff;
}
::selection{
  color: #000;
  background-color: #fff;
}

/* ------------------------------------
  font
------------------------------------ */
.f_mont {
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
}

/* ------------------------------------
  #load
------------------------------------ */
#load {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  background-color: #000;
}

/* ------------------------------------
  #kv
------------------------------------ */
@media screen and (max-width: 767px) {
  #kv {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    background-image: url("../img/pic_kv_1_sp.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 375px 448px;
  }

  #kv:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    background-image: url("../img/pic_kv_2_sp.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }

  #kv .center {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
  }

  #kv .cdt {
    width: 100%;
    height: 34px;
    position: absolute;
    top: 60%;
    left: 0;
    z-index: 20;
    margin-top: -17px;
    text-align: center;
    letter-spacing: -.4em;
    white-space: nowrap;
  }
  #kv.on .cdt {
    top: 50%;
  }

  #kv .cdt div {
    height: 34px;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin: 0 8px;
    white-space: nowrap;
  }
  #kv .cdt div.days {
    margin-left: 0;
  }
  #kv .cdt div.secs {
    margin-right: 0;
  }

  #kv .cdt div:before {
    content: "";
    width: 4px;
    height: 100%;
    position: absolute;
    top: 0;
    right: -8px;
    background-image: url("../img/txt_cdt_colon.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
  #kv .cdt div.secs:before {
    display: none;
  }

  #kv .cdt div:after {
    position: absolute;
    top: -19px;
    left: 2px;
    font-size: 10px;
    letter-spacing: 0.02em;
    text-align: left;
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
  }
  #kv .cdt div.days:after {
    content: "DAYS";
  }
  #kv .cdt div.hours:after {
    content: "HOURS";
  }
  #kv .cdt div.mins:after {
    content: "MINS";
  }
  #kv .cdt div.secs:after {
    content: "SECS";
  }

  #kv .cdt div span {
    display: block;
    width: 30px;
    height: 34px;
    float: left;
    background-image: url("../img/txt_cdt_sp.png");
    background-repeat: no-repeat;
    background-position: center 0;
    background-size: 30px 340px;
    margin-right: 2px;
  }
  #kv .cdt div span.n1 {
    background-position: center -34px;
  }
  #kv .cdt div span.n2 {
    background-position: center -68px;
  }
  #kv .cdt div span.n3 {
    background-position: center -102px;
  }
  #kv .cdt div span.n4 {
    background-position: center -136px;
  }
  #kv .cdt div span.n5 {
    background-position: center -170px;
  }
  #kv .cdt div span.n6 {
    background-position: center -204px;
  }
  #kv .cdt div span.n7 {
    background-position: center -238px;
  }
  #kv .cdt div span.n8 {
    background-position: center -272px;
  }
  #kv .cdt div span.n9 {
    background-position: center -306px;
  }

  #kv .satellite_block {
    width: 442px;
    height: 442px;
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 5;
    -webkit-transform: translate3d(-50%,-50%,0);
    transform: translate3d(-50%,-50%,0);
  }

  #kv .satellite {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    -webkit-animation: s1 100s infinite linear;
    animation: s1 100s infinite linear;
  }
  #kv .satellite.s2 {
    -webkit-animation: s2 100s infinite linear;
    animation: s2 100s infinite linear;
  }
  #kv .satellite.s3 {
    -webkit-animation: s3 100s infinite linear;
    animation: s3 100s infinite linear;
  }

  #kv .satellite .point {
    width: 10px;
    height: 10px;
    background-image: url("../img/pic_satellite_sp.png");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    position: fixed;
    top: 0;
    left: 0;
  }

  #kv .satellite .point p {
    font-size: 10px;
    letter-spacing: 0.02em;
    line-height: 0px;
    position: absolute;
    top: -6px;
    left: -6px;
    white-space: nowrap;
    color: #def70b;
    -webkit-transform: rotate(-135deg) scale(0.8);
    transform: rotate(-135deg) scale(0.8);
    -webkit-transform-origin: left center;
    transform-origin: left center;
  }

  #kv .satellite .line {
    width: 1px;
    height: 292px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transform-origin: left top;
    transform-origin: left top;
    position: absolute;
    top: 15px;
    left: 15px;
    overflow: hidden;
  }

  #kv .satellite .line span {
    width: 1px;
    height: 0;
    position: absolute;
    left: 0;
    -webkit-animation: s_line 5s ease-out infinite;
    animation: s_line 5s ease-out infinite;
  }
  #kv .satellite.s2 .line span {
    -webkit-animation-delay: 150ms;
    animation-delay: 150ms;
  }
  #kv .satellite.s3 .line span {
    -webkit-animation-delay: 300ms;
    animation-delay: 300ms;
  }

}


/* ------------------------------------
  #wrapper
------------------------------------ */
#wrapper {
  width: 100%;
  position: relative;
  z-index: 10;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  #wrapper {
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
  }
}

#contents {
  width: 100%;
  position: relative;
  z-index: 10;
  margin-bottom: 302px;
}


/* .topic */
.topic {
  font-size: 26px;
  line-height: 32px;
  letter-spacing: 0.46em;
  color: #DA3615;
  margin-bottom: 105px;
  opacity: 0;
}
.topic.on {
  opacity: 1;
}

.topic span {
  display: block;
  height: 32px;
  white-space: nowrap;
}


/* .box */
.box {
  width: 40px;
  height: 40px;
  background-color: #0000FF;
  position: absolute;
  bottom: 0;
  right: 0;
}
.box:before {
  content: "";
  width: 40px;
  height: 40px;
  background-color: #000;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 1;
  -webkit-border-radius: 50% 50%;
  border-radius: 50% 50%;
}
.box:after {
  content: "";
  width: 40px;
  height: 40px;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 2;
  background-repeat: no-repeat;
  background-position: center;
}
.box.arrow:after {
  background-image: url("../img/icn_box_arrow.png");
  background-size: 12px 6px;
}
.box.toggle:after {
  background-image: url("../img/icn_box_toggle.png");
  background-size: 10px 10px;
  -webkit-transition: all 500ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all 500ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
}
.open .box.toggle:after {
  transform: rotate(135deg);
}

/* ------------------------------------
  #fv
------------------------------------ */
#fv {
  margin: 0 20px 110px 20px;
  position: relative;
  z-index: 100;
}

#fv .b1 {
  width: 100%;
  position: absolute;
  top: 36.6%;
  left: 0;
  z-index: 100;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.035em;
  color: #DA3615;
  text-align: center;
}

@media screen and (max-width: 767px) {
  #fv.on .b1 {
    top: 8.6%!important;
  }

  @media screen and (max-height: 500px) {
    #fv .b1 {
      top: 26.6%;
    }
  }
}

#fv .b1 .txt1 {
  margin-bottom: 10px;
}

#fv .b1 .txt1 span {
  color: #00F3FF;
  padding-left: 2px;
}

#fv .b1 .txt2 {
  width: 100%;
  max-width: 335px;
  margin: 0 auto 11px;
}

#fv .b2 {
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 45px;
}

#fv .b2 .movie {
  width: 73%;
  max-width: 260px;
  margin: 0 auto 30px;
}

#fv .b2 .movie a {
  display: block;
}

#fv .b2 .logo {
  width: 120px;
  margin: 0 auto;
}

#fv .down {
  width: 1px;
  height: 100px;
  position: absolute;
  bottom: -70px;
  left: 50%;
}

.loaded #fv .down:after {
  content: "";
  display: block;
  width: 1px;
  height: 0;
  background-color: #ccc;
  -webkit-animation: down 2000ms ease 3;
  animation: down 2000ms ease 3;
}

/* ------------------------------------
  #promise
------------------------------------ */
#promise {
  margin: 0 20px 240px 20px;
}

#promise .topic {
  margin-bottom: 75px;
}

#promise .b1 {
  width: 100%;
  background-image: url("../img/pic_promise.jpg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  margin-bottom: 120px;
}

#promise .b1:before {
  content: "";
  display: block;
  padding-top: 167.2%;
}

#promise .b1 p {
  width: -webkit-calc(100% - 40px);
  width: calc(100% - 40px);
  font-size: 16px;
  line-height: 36px;
  letter-spacing: 0.08em;
  color: #ddd;
  text-align: justify;
  position: absolute;
  top: 12.5%;
  left: 20px;
}

#promise .b1 p span {
  background:linear-gradient(transparent 0%, #000 0%);
}

#promise .b2 {
  margin-bottom: 120px;
}

#promise .b2 .block {
  margin-bottom: 20px;
  padding: 40px 20px 60px 20px;
  border: 1px #666 solid;
  background-color: #000;
}
#promise .b2 .block.o {
  margin-top: 120px;
  padding-top: 60px;
}

#promise .b2 .block h3 {
  line-height: 40px;
  margin-bottom: 32px;
  color: #fff;
  border-top: 1px #DA3615 solid;
  border-bottom: 1px #DA3615 solid;
}

#promise .b2 .block p {
  font-size: 12px;
  line-height: 26px;
  color: #888;
}

#promise .b2 .block p .a {
  border-bottom: 1px #00F2FE solid;
  padding-bottom: 2px;
  color: #fff;
  cursor: pointer;
}

#promise .b2 .block .area {
  margin-top: 77px;
  padding: 4px 20px 30px 20px;
  background-image: url("../img/bg_promise_area.png");
  background-repeat: repeat-x;
  background-position: left top;
  background-size: contain;
}

#promise .b2 .block .area h4 {
  line-height: 40px;
  margin-bottom: 32px;
  font-weight: normal;
  color: #fff;
  border-bottom: 1px #DA3615 solid;
}

#promise .b2 .block h5 {
  line-height: 40px;
  margin-bottom: 10px;
  font-weight: normal;
  color: #fff;
}

#promise .b2 .block h5 span {
  border-bottom: 1px #DA3615 solid;
  padding-bottom: 5px;
}

#promise .b2 .block p.btm {
  margin-bottom: 20px;
}

#promise .b2 .block .area p {
  font-size: 11px;
  line-height: 26px;
  letter-spacing: 0.062em;
}

#promise .b2 .block p .indent {
  display: inline-block;
  text-indent: -11px;
  padding-left: 11px;
}

#promise .b3 .embed {
  margin-bottom: 120px;
}

/* ------------------------------------
  #message
------------------------------------ */
#message {
  margin: 0 20px 240px 20px;
}

#message .m {
  margin-bottom: 20px;
  border: 1px #666 solid;
  padding: 3px;
  position: relative;
}

#message .m .name {
  padding: 20px 18% 18px calc(70px + 9%);
  background-image: url(../img/bg_space.png);
  background-repeat: repeat;
  background-position: center;
  background-size: 329px 137px;
  cursor: pointer;
  position: relative;
}

#message .m .name img {
  width: 50px;
  border-radius: 50% 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 9%;
  margin: auto;
}

#message .m .name .t1 {
  font-size: 10px;
  line-height: 16px;
  color: #888;
}

#message .m .name .t2 {
  font-size: 16px;
}

#message .m .acco {
  background-color: #000;
  padding: 38px 5% 2px 11%;
  text-align: justify;
  display: none;
  position: relative;
}

#message .m .acco .p {
  font-size: 12px;
  line-height: 26px;
  color: #ddd;
  margin-bottom: 30px;
}

#message .m .acco .sign {
  width: 100%;
  margin-top: 15px;
}

#message .m .acco .sign img {
  width: 130px;
  float: right;
}


/* ------------------------------------
  #challenge
------------------------------------ */
#challenge {
  margin: 0 20px 240px 20px;
}

#challenge .topic {
  margin-bottom: 80px;
}

#challenge .block {
  width: 100%;
  position: relative;
  margin-bottom: 115px;
}

#challenge .block .b1 {
  position: relative;
}

#challenge .block .b1 .pic {
  width: -webkit-calc(100% - 40px);
  width: calc(100% - 40px);
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px #666 solid;
  padding: 3px;
}

#challenge .block .b1 .num {
  width: 40px;
  height: 40px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px #666 solid;
  border-left: 0;
  position: absolute;
  bottom: 0;
  right: 0;
}

#challenge .block .b1 .num:before {
  content: "";
  width: 23px;
  height: 20px;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  background-image: url("../img/txt_challenge_num.png");
  background-repeat: no-repeat;
  background-size: 23px 200px;
}
#challenge .block .b1 .num.n1:before {
  background-position: left 0;
}
#challenge .block .b1 .num.n2:before {
  background-position: left -20px;
}
#challenge .block .b1 .num.n3:before {
  background-position: left -40px;
}
#challenge .block .b1 .num.n4:before {
  background-position: left -60px;
}
#challenge .block .b1 .num.n5:before {
  background-position: left -80px;
}
#challenge .block .b1 .num.n6:before {
  background-position: left -100px;
}
#challenge .block .b1 .num.n7:before {
  background-position: left -120px;
}
#challenge .block .b1 .num.n8:before {
  background-position: left -140px;
}
#challenge .block .b1 .num.n9:before {
  background-position: left -160px;
}
#challenge .block .b1 .num.n10:before {
  background-position: left -180px;
}

#challenge .block .b2 {
  position: relative;
  border: 1px #666 solid;
  border-top: 0;
  padding: 3px;
}

#challenge .block .b2 .title {
  padding: 30px 18% 28px 11%;
  background-image: url("../img/bg_space.png");
  background-repeat: repeat;
  background-position: center;
  background-size: 329px 137px;
  cursor: pointer;
  position: relative;
}

#challenge .block .b2 .acco {
  background-color: #000;
  padding: 38px 5% 2px 11%;
  text-align: justify;
  display: none;
  position: relative;
}

#challenge .block .b2 .acco .p {
  margin-bottom: 60px;
}

#challenge .block .b2 .acco .p h3 {
  line-height: 40px;
  margin-bottom: 36px;
  color: #888;
  border-top: 1px #DA3615 solid;
  border-bottom: 1px #DA3615 solid;
}

#challenge .block .b2 .acco .p p {
  font-size: 12px;
  line-height: 26px;
  color: #888;
  word-break: break-all;
}
#challenge .block .b2 .acco .p p.non {
  text-align: left;
}

#challenge .block .b2 .acco .p p .indent {
  display: inline-block;
  text-indent: -12px;
  padding-left: 12px;
}
#challenge .block .b2 .acco .p p .indent.btm {
  line-height: 20px;
  margin-bottom: 12px;
}
#challenge .block .b2 .acco .p p .indent.btm2 {
  margin-bottom: 12px;
}

#challenge .block .b2 .acco .p p a {
  border-bottom: 1px #00F2FE solid;
  padding-bottom: 2px;
  word-break: break-all;
  font-size: 12px;
}

#challenge .block .b2 .acco .p p .red {
  color: #DA3615;
}

#challenge .block .b2 .acco .p p .red.center {
  display: block;
  line-height: 1.7;
  text-align: center;
  padding-top: 5px;
}

#challenge .block .b2 .acco .p .pic {
  margin-bottom: 16px;
}

#challenge .block .b2 .acco .p .btn_block {
  margin-top: 26px;
}

#challenge .block .b2 .acco .p .btn_block .btn {
  display: block;
  text-align: center;
  cursor: pointer;
  font-size: 12px;
  line-height: 48px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  border: 1px solid #cccccc;
  margin-bottom: 8px;
  position: relative;
}
#challenge .block .b2 .acco .p .btn_block .btn.end {
  color: #666;
  border-color: #333;
  pointer-events: none;
}

#challenge .block .b2 .acco .p .btn_block .btn:before {
  content: "";
  width: 16px;
  height: 100%;
  background-image: url("../img/icn_mic.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -45px;
}
#challenge .block .b2 .acco .p .btn_block .btn.end:before {
  display: none;
}

#challenge .block .b2 .acco .p .video {
  width: 100%;
  position: relative;
}

#challenge .block .b2 .acco .p .video:before {
  content: "";
  display: block;
  padding-top: 56.25%;
}

#challenge .block .b2 .acco .p .video iframe {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

#challenge .andmore {
  width: 146px;
  margin: -40px auto 0;
}

/* ------------------------------------
  #tweet
------------------------------------ */
#tweet {
  margin: 0 20px 190px 20px;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
}

#tweet .btn_l {
  margin-bottom: 40px;
}

#tweet .btn_l a {
  display: block;
  width: 100%;
  height: 120px;
  background-image: url("../img/bg_aurora.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
}

#tweet .btn_l a:before {
  content: "";
  width: -webkit-calc(100% - 2px);
  width: calc(100% - 2px);
  height: -webkit-calc(100% - 2px);
  height: calc(100% - 2px);
  position: absolute;
  top: 1px;
  left: 1px;
  z-index: 1;
  background-image: url("../img/bg_space.png");
  background-repeat: repeat;
  background-position: center;
  background-size: 329px 137px;
  -webkit-border-radius: 60px 60px;
  border-radius: 60px 60px;
}

#tweet .btn_l a p {
  width: 100%;
  line-height: 120px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

#tweet .btn_l a p:before {
  content: "";
  width: 100%;
  height: 15px;
  position: absolute;
  top: 21px;
  left: 0;
  background-image: url("../img/icn_tweet_tw.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

#tweet .btn_l a p:after {
  content: "";
  width: 100%;
  height: 6px;
  position: absolute;
  bottom: 24px;
  left: 0;
  background-image: url("../img/icn_tweet_arrow.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

#tweet .btn_s a {
  display: block;
  width: 100%;
  height: 40px;
  border: 1px #666660 solid;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}

#tweet .btn_s a:before {
  content: "";
  width: -webkit-calc(100% - 6px);
  width: calc(100% - 6px);
  height: -webkit-calc(100% - 6px);
  height: calc(100% - 6px);
  position: absolute;
  top: 3px;
  left: 3px;
  z-index: 1;
  background-image: url("../img/bg_space.png");
  background-repeat: repeat;
  background-position: center;
  background-size: 329px 137px;
}

#tweet .btn_s a p {
  width: 100%;
  line-height: 38px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

#tweet .btn_s a p:after {
  content: "";
  width: 12px;
  height: 100%;
  position: absolute;
  top: 0;
  right: 14px;
  background-image: url("../img/icn_tweet_arrow.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* ------------------------------------
  #link
------------------------------------ */
#link {
  margin: 0 20px;
}

#link .sns {
  text-align: center;
  letter-spacing: -.4em;
  margin-bottom: 115px;
}

#link .sns li {
  display: inline-block;
  vertical-align: middle;
  width: 50px;
  position: relative;
  margin: 0 -webkit-calc((100% - 250px)/8);
  margin: 0 calc((100% - 250px)/8);
}
#link .sns li:nth-child(1) {
  margin-left: 0;
}
#link .sns li:nth-child(5) {
  margin-right: 0;
}

#link .sns li:before {
  content: "";
  width: 100%;
  height: 100px;
  position: absolute;
  top: -23px;
  left: 0;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
#link .sns li.tw:before {
  background-image: url("../img/txt_link_tw.png");
}
#link .sns li.line:before {
  background-image: url("../img/txt_link_line.png");
}
#link .sns li.fb:before {
  background-image: url("../img/txt_link_fb.png");
}
#link .sns li.ig:before {
  background-image: url("../img/txt_link_ig.png");
}
#link .sns li.yt:before {
  background-image: url("../img/txt_link_yt.png");
}

#link .sns li a {
  display: block;
  width: 50px;
  height: 50px;
  border: 1px #0000FF solid;
  -webkit-border-radius: 50% 50%;
  border-radius: 50% 50%;
  background-repeat: no-repeat;
  background-position: center;
  position: relative;
  z-index: 10;
  background-color: #000;
}
#link .sns li.tw a {
  background-image: url("../img/icn_link_tw.png");
  background-size: 18px 15px;
}
#link .sns li.line a {
  background-image: url("../img/icn_link_line.png");
  background-size: 20px 20px;
}
#link .sns li.fb a {
  background-image: url("../img/icn_link_fb.png");
  background-size: 19px 19px;
}
#link .sns li.ig a {
  background-image: url("../img/icn_link_ig.png");
  background-size: 19px 19px;
}
#link .sns li.yt a {
  background-image: url("../img/icn_link_yt.png");
  background-size: 22px 15px;
}

#link .bnr a {
  display: block;
  border: 1px #0000FF solid;
}

#link .bnr a .pic {
  margin: 2px;
}

#link .bnr a .txt {
  padding: 0 0 0 10px;
  border-top: 1px #0000FF solid;
  background-color: #000;
  position: relative;
}

#link .bnr a .txt p {
  font-size: 12px;
  line-height: 40px;
  letter-spacing: 0.11em;
}

/* ------------------------------------
  #footer
------------------------------------ */
#footer {
  margin: 0 20px;
  padding-bottom: 20px;
}

/* ------------------------------------
  media
------------------------------------ */
/* width */
@media screen and (min-width: 450px) {
  #kv .cdt {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }
}

@media screen and (min-width: 414px) {
  #kv .cdt {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
  }
}

@media screen and (min-width: 400px) {
  #kv .cdt {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
  }
}

@media screen and (max-width: 359px) {
  #kv .cdt {
    -webkit-transform: scale(0.95);
    transform: scale(0.95);
  }
}

@media screen and (max-width: 349px) {
  #kv .cdt {
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
  }
  .topic {
    font-size: 24px;
    line-height: 30px;
    letter-spacing: 0.46em;
    color: #DA3615;
    margin-bottom: 105px;
  }
}

@media screen and (max-width: 329px) {
  #kv .cdt {
    -webkit-transform: scale(0.85);
    transform: scale(0.85);
  }
}

