 .dot_btn {
     position: relative;
     display: inline-block;
     margin: 5px 10px;
     padding: 17px 22px;
     width: 120px;
     z-index: 1;
     border: 0;
     outline: 0;
     cursor: pointer;
     font-size: 11px;
     font-size: 0.6875rem;
     color: #fff;
     text-align: center;
     line-height: normal;
     letter-spacing: 0.05em;
     text-transform: uppercase;
     font-weight: bold;
 }

 .dot_btn .hover {
     position: absolute;
     top: 0;
     right: 0;
     bottom: 0;
     left: 0;
     z-index: -1;
     overflow: hidden;
 }

 .dot_btn .hover span {
     position: relative;
     display: block;
     left: -15px;
     height: 10px;
     width: 0;
     content: '';
 }

 .dot_btn .hover span:after {
     position: absolute;
     display: block;
     right: -10px;
     width: 10px;
     height: 10px;
     background: #fff;
     content: '';
 }

 .dot_btn .hover span:nth-child(odd):after {
     background: rgba(0, 0, 0, 0.35);
 }

 .dot_btn .hover span:first-child {
     left: -75px;
     transition: all 0.3s steps(8);
 }

 .dot_btn .hover span:nth-child(2) {
     left: -45px;
     transition: all 0.325s steps(8);
 }

 .dot_btn .hover span:nth-child(3) {
     left: -55px;
     transition: all 0.35s steps(8);
 }

 .dot_btn .hover span:nth-child(4) {
     transition: all 0.4s steps(8);
 }

 .dot_btn .hover span:nth-child(5) {
     left: -25px;
     transition: all 0.375s steps(8);
 }

 .dot_btn:after {
     position: absolute;
     right: 0;
     bottom: 0;
     left: 0;
     height: 4px;
     z-index: -2;
     content: '';
 }

 .dot_btn:hover {
     color: #fff;
 }

 .dot_btn:hover, .dot_btn:focus {
     color: #fff;
 }

 .dot_btn:hover .hover span:first-child, .dot_btn:focus .hover span:first-child {
     width: calc(100% + 76px);
 }

 .dot_btn:hover .hover span:first-child:after, .dot_btn:focus .hover span:first-child:after {
     animation: whiteBlack 0.3s 0s 1;
 }

 .dot_btn:hover .hover span:nth-child(2), .dot_btn:focus .hover span:nth-child(2) {
     width: calc(100% + 46px);
     transition: all 0.375s steps(8);
 }

 .dot_btn:hover .hover span:nth-child(2):after, .dot_btn:focus .hover span:nth-child(2):after {
     animation: whiteBlack 0.3s 0.06s 1 reverse backwards;
 }

 .dot_btn:hover .hover span:nth-child(3), .dot_btn:focus .hover span:nth-child(3) {
     width: calc(100% + 56px);
     transition: all 0.35s steps(8);
 }

 .dot_btn:hover .hover span:nth-child(3):after, .dot_btn:focus .hover span:nth-child(3):after {
     animation: whiteBlack 0.3s 0.05s 1 forwards;
 }

 .dot_btn:hover .hover span:nth-child(4), .dot_btn:focus .hover span:nth-child(4) {
     width: calc(100% + 16px);
     transition: all 0.3s steps(8);
 }

 .dot_btn:hover .hover span:nth-child(4):after, .dot_btn:focus .hover span:nth-child(4):after {
     animation: whiteBlack 0.3s 0s 1 reverse backwards;
 }

 .dot_btn:hover .hover span:nth-child(5), .dot_btn:focus .hover span:nth-child(5) {
     width: calc(100% + 26px);
     transition: all 0.325s steps(8);
 }

 .dot_btn:hover .hover span:nth-child(5):after, .dot_btn:focus .hover span:nth-child(5):after {
     animation: whiteBlack 0.3s 0.07s 1 forwards;
 }

 .dot_btn.red {
     background: #ff5747;
 }

 .dot_btn.red span, .dot_btn.red:after {
     background: #cb4539;
 }

 .dot_btn.green {
     background: #2bdc33;
 }

 .dot_btn.green span, .dot_btn.green:after {
     background: #23b32a;
 }

 .dot_btn.blue {
     background: #16bfff;
 }

 .dot_btn.blue span, .dot_btn.blue:after {
     background: #129acd;
 }

 @media (min-width: 48em) {
     .dot_btn {
         padding: 18px 30px;
         font-size: 12px;
         font-size: 0.75rem;
         font-weight: bold;
     }

     .dot_btn:after {
         height: 6px;
     }
 }

 @-webkit-keyframes whiteBlack {
     0%, 24% {
         background: #fff;
     }

     25%, 49% {
         background: rgba(0, 0, 0, 0.35);
     }

     50%, 74% {
         background: #fff;
     }

     75%, 100% {
         background: rgba(0, 0, 0, 0.35);
     }
 }

 @-moz-keyframes whiteBlack {
     0%, 24% {
         background: #fff;
     }

     25%, 49% {
         background: rgba(0, 0, 0, 0.35);
     }

     50%, 74% {
         background: #fff;
     }

     75%, 100% {
         background: rgba(0, 0, 0, 0.35);
     }
 }

 @-ms-keyframes whiteBlack {
     0%, 24% {
         background: #fff;
     }

     25%, 49% {
         background: rgba(0, 0, 0, 0.35);
     }

     50%, 74% {
         background: #fff;
     }

     75%, 100% {
         background: rgba(0, 0, 0, 0.35);
     }
 }

 @keyframes whiteBlack {
     0%, 24% {
         background: #fff;
     }

     25%, 49% {
         background: rgba(0, 0, 0, 0.35);
     }

     50%, 74% {
         background: #fff;
     }

     75%, 100% {
         background: rgba(0, 0, 0, 0.35);
     }
 }
















 /*--フェードイン-左から出現--*/


.fi_left {
    transform: translate(-50%, 0);
    opacity: 0;
}

.fi_left.is-active {
    animation: fi_left 1s linear forwards;
 }

 @keyframes fi_left {
    100% {
        transform: translate(0, 0);
        opacity: 1;
    }
 }

 /*--フェードイン-右から出現--*/

.fi_right {
    transform: translate(50%, 0);
    opacity: 0;
}

.fi_right.is-active {
    animation: fi_right 1s linear forwards;
 }

 @keyframes fi_right {
    100% {
        transform: translate(0, 0);
        opacity: 1;
    }
 }



 /*--背景アニメーション--*/


.background {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: #edf3f8;
  background: -moz-radial-gradient(center, ellipse cover, #edf3f8 1%, #dee3e8 100%);
  background: -webkit-radial-gradient(center, ellipse cover, #edf3f8 1%, #dee3e8 100%);
  background: radial-gradient(ellipse at center, #edf3f8 1%, #dee3e8 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#edf3f8", endColorstr="#dee3e8",GradientType=1 );
}

.pentahedron {
  position: absolute;
  width: 100%;
  height: 100%;
  fill: #3E82F7;
}

.point {
  fill: #8491A3;
}

.rhombus {
  fill: #2DA94F;
  stroke: #2DA94F;
}

.x {
  fill: #FDBD00;
}

.circle {
  fill: #ED412D;
}

svg {
  display: block;
  width: 30px;
  height: 30px;
  position: absolute;
  transform: translateZ(0px);
}


.fadein {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fadein.is-show {
  opacity: 1;
  transform: translateY(0);
}
