@charset "UTF-8";
/*------------------------------------------------------------------

BASE

--------------------------------------------------------------------*/
@font-face {
  font-family: "MyYuGothic";
  font-weight: normal;
  src: local("YuGothic-Medium"), local("Yu Gothic Medium"), local("YuGothic-Regurar"); }
@font-face {
  font-family: "MyYuGothic";
  font-weight: bold;
  src: local("YuGothic-Bold"), local("Yu Gothic"); }
/*Easing*/
/*Screen*/
html, body, div, article, section, span, p, ul, ol, li, table, tr, td, th, hr, h1, h2, h3, h4, h5, h6, a, em, strong, b, img, input, textarea, svg, button, fieldset, figure, header, footer, label {
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  font-size: 100%;
  vertical-align: baseline;
  list-style-type: none;
  -webkit-text-size-adjust: none;
  box-sizing: border-box;
  line-height: 1;
  border-collapse: collapse; }

html, body {
  zoom: 1;
  min-height: 100%; }

html {
  font-size: 16px;
  overflow-x: hidden; }

body {
  color: #FEFEFE;
  background: #000000;
  font-family: toppan-bunkyu-gothic-pr6n, "ヒラギノ角ゴシック", "Hiragino Kaku Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", MyYuGothic, "游ゴシック体", YuGothic, "メイリオ", Meiryo, Arial, sans-serif;
  font-weight: 300;
  position: relative;
  word-break: normal;
  word-wrap: break-word;
  -webkit-overflow-scrolling: touch;
  overflow-scrolling: touch; }

.serif {
  font-family: toppan-bunkyu-mincho-pr6n, "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝体", "Yu Mincho", YuMincho, "ＭＳ Ｐ明朝", Georgia, serif; }

.sans-serif {
  font-family: toppan-bunkyu-gothic-pr6n, "ヒラギノ角ゴシック", "Hiragino Kaku Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", MyYuGothic, "游ゴシック体", YuGothic, "メイリオ", Meiryo, Arial, sans-serif; }

.mono {
  font-family: "Courier", "Osaka－等幅", Osaka-mono, "ＭＳ ゴシック", "MS Gothic", monospace; }

input[type=text],
input[type=url],
input[type=tel],
input[type=email],
input[type=radio],
input[type=checkbox],
input[type=submit],
input[type=search],
select,
textarea {
  -webkit-appearance: none;
  outline: none; }

input[type=submit]:hover {
  cursor: pointer; }

strong, b,
h1, h2, h3, h4, h5, h6 {
  font-weight: 600; }

a {
  color: #00A0E9;
  outline: none;
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }

@media screen and (min-width: 813px) {
  a[href^="tel:"] {
    pointer-events: none; } }
p {
  margin: 0;
  padding: 0 0 2.25em;
  line-height: 2.25em;
  letter-spacing: 0.05em;
  line-break: strict; }
  p a {
    color: #00A0E9; }
  p a:hover {
    text-decoration: underline; }
  p:last-child {
    padding-bottom: 0; }

img {
  display: inline-block;
  outline: none;
  -moz-user-select: none;
  /* These user-select properties are inheritable, used to prevent text selection */
  -webkit-user-select: none;
  -ms-user-select: none;
  /* From IE10 only */
  user-select: none;
  /* Not valid CSS yet, as of July 2012 */
  -webkit-user-drag: none;
  /* Prevents dragging of images/divs etc */
  user-drag: none; }

.clear {
  width: 100%;
  font-size: 0px;
  height: 1px;
  overflow: hidden;
  clear: both;
  float: none;
  margin: 0 0 -1px 0;
  display: block; }

.clear_after:after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  margin: 0 0 -1px 0;
  clear: both;
  float: none; }

.l,
.alignleft {
  float: left; }

.r,
.alignright {
  float: right; }

.c,
.aligncenter {
  text-align: center;
  margin-left: auto;
  margin-right: auto; }

.tsume_lr {
  margin: 0 -0.1em; }

.none {
  display: none; }

.hidden {
  visibility: hidden; }

.nopc {
  display: none;
  visibility: hidden; }
  @media screen and (max-width: 812px) {
    .nopc {
      display: inherit;
      visibility: visible; } }

@media screen and (max-width: 812px) {
  .nosp {
    display: none;
    visibility: hidden; } }

/*------------------------------------------------------------------

ANIMATION

--------------------------------------------------------------------*/
@keyframes fadeIn {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes Sequence {
  0% {
    transform: translate(0); }
  100% {
    transform: translate(0); } }
@keyframes Scene1 {
  0% {
    transform: scale(1, 1); }
  85% {
    opacity: 1; }
  100% {
    transform: scale(1.1, 1.1);
    opacity: 0; } }
@keyframes Scene1sp {
  0% {
    transform: scale(1, 1); }
  70% {
    opacity: 1; }
  100% {
    transform: scale(1.1, 1.1);
    opacity: 0; } }
@keyframes Scene2 {
  0% {
    transform: scale(1, 1); }
  30% {
    opacity: 1;
    filter: blur(0px) brightness(100%); }
  100% {
    filter: blur(10px) brightness(150%);
    transform: scale(1.03, 1.03); } }
@keyframes Scene2v {
  0% {
    left: 0; }
  100% {
    left: 1px; } }
@keyframes Scene3 {
  0% {
    transform: scale(1, 1); }
  100% {
    transform: scale(1.1, 1.1); } }
@keyframes wh_bg {
  0% {
    transform: scale(1, 1);
    opacity: 0; }
  30% {
    opacity: 1; }
  100% {
    transform: scale(1.2, 1.2); } }
/*------------------------------------------------------------------

HEADER

--------------------------------------------------------------------*/
/*------------------------------------------------------------------

Loading

--------------------------------------------------------------------*/
#loading_wrapper {
  position: fixed;
  z-index: 28;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background-color: #FEFEFE; }
  #loading_wrapper.action {
    transition: opacity 0.5s ease-out 0.5s;
    opacity: 0; }
    #loading_wrapper.action #loading,
    #loading_wrapper.action #loading2 {
      transition: opacity 0.6s ease 0s;
      opacity: 0; }

#loading,
#loading2 {
  position: absolute;
  width: 48px;
  height: 50px;
  border-radius: 50%;
  box-shadow: 0px 3px 0px 3px rgba(0, 160, 233, 0.5), 1px 1px 3px 2px rgba(0, 160, 233, 0.3) inset;
  left: 50%;
  top: 50%;
  margin: -25px 0 0 -24px;
  transform-origin: center center;
  animation: Loading 1s linear 0s infinite; }

#loading2 {
  width: 50px;
  height: 48px;
  margin: -24px 0 0 -25px;
  animation: Loading 0.75s linear -0.5s infinite; }

@keyframes Loading {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(360deg); } }
/*------------------------------------------------------------------

MENU

--------------------------------------------------------------------*/
#menu_wrapper {
  display: none;
  z-index: 15;
  position: relative; }
  #menu_wrapper.action {
    display: block;
    opacity: 0;
    animation: fadeIn 2s ease 0s forwards; }

#menu_btn {
  width: 60px;
  height: 60px;
  position: fixed;
  z-index: 5;
  left: 50%;
  bottom: 120px;
  margin-left: -40px;
  opacity: 0.8; }
  @media screen and (max-width: 812px) {
    #menu_btn {
      bottom: 60px;
      margin-left: -30px; } }

#menu {
  position: absolute;
  top: 250px;
  left: 0;
  text-align: center;
  width: 100%;
  padding-right: 18px;
  z-index: 4; }
  #menu li {
    text-align: center;
    position: relative;
    margin: 2em 0;
    font-size: 1.125rem;
    opacity: 0;
    bottom: -3em;
    transform: scale(0.9, 0.9);
    transform-origin: center center; }
    #menu li:nth-child(1) {
      transition: all 0.3s ease 0.2s; }
    #menu li:nth-child(2) {
      transition: all 0.3s ease 0.1s; }
    #menu li:nth-child(3) {
      transition: all 0.3s ease 0s; }
  #menu a {
    color: #FEFEFE;
    opacity: 0.9;
    line-height: 1em;
    text-shadow: 0px 1px 4px #00a0e9, 0px -1px 4px #00a0e9, 1px 0px 4px #00a0e9, -1px 0px 4px #00a0e9; }
    #menu a:active {
      opacity: 0.6; }
  #menu span {
    color: #FEFEFE;
    line-height: 1em;
    text-shadow: 0px 1px 4px rgba(0, 160, 233, 0.5), 0px -1px 4px rgba(0, 160, 233, 0.5), 1px 0px 4px rgba(0, 160, 233, 0.5), -1px 0px 4px rgba(0, 160, 233, 0.5);
    opacity: 0.3; }
  #menu.active {
    z-index: 8; }
    #menu.active li {
      opacity: 1;
      bottom: 0;
      transform: scale(1, 1); }
      #menu.active li:nth-child(1) {
        transition: all 0.3s ease 0s; }
      #menu.active li:nth-child(2) {
        transition: all 0.3s ease 0.1s; }
      #menu.active li:nth-child(3) {
        transition: all 0.3s ease 0.2s; }
  @media screen and (max-width: 812px) {
    #menu {
      top: 200px;
      padding: 0; } }
  @media screen and (max-height: 540px) {
    #menu {
      top: 150px; } }

/*------------------------------------------------------------------

CONTENTS

--------------------------------------------------------------------*/
#title_logo {
  position: fixed;
  top: 50px;
  left: 0;
  width: 100%;
  z-index: 50;
  display: none;
  /*&.hide{
      opacity: 0;
  }*/ }
  #title_logo.action {
    display: block;
    animation: fadeIn 2.5s ease 0s forwards;
    /*#whatshappen{
        opacity: 0;
        transition: opacity 1s ease 0s;
    }*/ }
  @media screen and (max-height: 540px) {
    #title_logo {
      top: 30px; } }

#title_logo_inner {
  position: relative;
  width: 360px;
  max-width: 360px;
  margin: 0 auto; }
  #title_logo_inner img {
    width: 100%;
    height: auto; }
  @media screen and (max-width: 812px) {
    #title_logo_inner {
      width: calc(100% - 110px); } }

#l1, #l2 {
  position: absolute;
  top: 0;
  left: -10px; }
  @media screen and (max-width: 812px) {
    #l1, #l2 {
      left: 0; } }

#l1 {
  animation: anime1 0.15s ease 0s infinite alternate; }

#l2 {
  top: 1px;
  animation: anime2 0.02s ease 0s infinite alternate; }

@keyframes anime1 {
  0% {
    opacity: 0.83; }
  100% {
    opacity: 0.91; } }
@keyframes anime2 {
  0% {
    opacity: 0.1; }
  100% {
    opacity: 0.3; } }
/*------------------------------------------------------------------

Comic

--------------------------------------------------------------------*/
#scene_wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #FEFEFE;
  z-index: 10;
  /*@media screen and (orientation: portrait) {
      top: calc((100% - 150vw) * 0.5);
      left: 0;
      width: 100vw;
      height: 150vw;
      &.scene3{
          top: 0;
          height: 100%;
          transition:all 1s ease 0s;
      }
  }*/ }
  #scene_wrapper.hide {
    opacity: 0;
    transition: opacity 2s ease 0s; }

#scene1 {
  position: absolute;
  transform-origin: 90vw 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/scene1.png") no-repeat center center;
  background-size: cover;
  overflow: hidden;
  z-index: 11;
  opacity: 0; }
  #scene1.action {
    animation: Scene1 6s ease 0s forwards; }
    #scene1.action #sequence1 {
      animation: Sequence 4.5s linear 0s forwards; }
  @media screen and (max-width: 812px) {
    #scene1.action {
      transform-origin: 90vw 10vh;
      animation: Scene1sp 6s ease 0s forwards; } }

#scene2 {
  position: absolute;
  transform-origin: 100vw 50vh;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("../images/scene2.png") no-repeat right bottom;
  background-size: cover;
  z-index: 12;
  opacity: 0; }
  #scene2.action {
    animation: Scene2 6s cubic-bezier(0.165, 0.84, 0.44, 1) 0s forwards; }
    #scene2.action #sequence2 {
      animation: Sequence 3.5s linear 0s forwards; }
  @media screen and (max-width: 812px) {
    #scene2 {
      width: calc(100% + 20vh); }
      #scene2.action {
        animation: Scene2 6s cubic-bezier(0.165, 0.84, 0.44, 1) 0s forwards, Scene2v 0.0083s linear 0s infinite; } }

#scene3 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 13;
  opacity: 0; }
  #scene3.action {
    opacity: 1; }
    #scene3.action #whatshappen {
      opacity: 0;
      transition: opacity 1s ease 4s; }
    #scene3.action #wh_bg {
      opacity: 1;
      animation: wh_bg 6s linear 0s forwards; }
    #scene3.action #sequence3 {
      animation: Sequence 5s linear 0s forwards; }

#wh_bg {
  position: absolute;
  opacity: 0;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: url("../images/wh_bg.png") no-repeat center center;
  background-size: cover;
  z-index: 15; }

#whatshappen {
  position: absolute;
  top: 50%;
  left: 50%;
  height: 160px;
  width: 720px;
  margin: -90px 0 0 -360px;
  transform-origin: center center;
  z-index: 14; }
  @media screen and (max-width: 812px) {
    #whatshappen {
      width: 100vw;
      left: 0;
      height: calc(100vw / 9 * 2);
      margin: calc(100vw / 9 * -1) 0 0 0; } }

#wh_mov {
  width: 100%;
  height: 100%; }

.glitch-img {
  background: url("../images/whatshappen.png") no-repeat center center;
  width: 100%;
  height: 100%;
  position: absolute;
  background-size: contain; }

/*------------------------------------------------------------------

Movie

--------------------------------------------------------------------*/
#movie {
  bottom: 0;
  left: 0;
  overflow: hidden;
  position: fixed;
  /* fixed の場合。absolute でも同じ */
  right: 0;
  top: 0;
  z-index: -1;
  display: none; }
  #movie.action {
    display: block; }
  #movie iframe {
    box-sizing: border-box;
    height: 56.25vw;
    /* 16:9 の高さなので 56.25% (= 9 ÷ 16) */
    left: 50%;
    min-height: 100%;
    min-width: 100%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 177.77777778vh;
    /* 16:9 の幅なので 177.77% (= 16 ÷ 9) */ }

#sound_control {
  position: fixed;
  right: 15px;
  bottom: 15px;
  text-align: right;
  background: url("../images/sound.png") no-repeat left center;
  background-size: 30px 22px;
  padding: 5px 0 5px 18px;
  line-height: 0;
  /*&.sound_on{
      opacity: 0;
      transition: opacity 0.5s ease 4s;
  }
  &.active{
      opacity: 1;
      transition: opacity 0.5s ease 0s;
  }*/ }
  #sound_control a {
    font-size: 0.6875rem;
    color: #FEFEFE;
    text-shadow: 0px 0px 4px #00a0e9;
    opacity: 0.5;
    margin-left: 1.5em;
    line-height: 1em;
    position: relative; }
    #sound_control a.selected {
      opacity: 1;
      text-shadow: 0px 1px 4px #00a0e9, 0px -1px 4px #00a0e9, 1px 0px 4px #00a0e9, -1px 0px 4px #00a0e9; }
  #sound_control #sound_off:after {
    content: "";
    display: block;
    height: 10px;
    width: 1px;
    background: #FEFEFE;
    box-shadow: 0px 0px 4px 1px #00a0e9;
    position: absolute;
    transform: rotate(30deg);
    left: -0.55rem;
    top: 1px; }

@media all and (-ms-high-contrast: none) {
  *::-ms-backdrop, #sound_control {
    padding: 20px 0 5px 18px; } }
#bg_wrapper {
  position: fixed;
  text-align: center;
  z-index: 5;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.2) url("../images/dots_bk.png?ver=20200322") repeat 0 0;
  background-size: 1000px 1000px;
  opacity: 0;
  transition: opacity 1s ease 0s; }
  #bg_wrapper.white {
    background: rgba(255, 255, 255, 0.1) url("../images/dots_w.png?ver=20200322") repeat 0 0;
    background-size: 1000px 1000px;
    z-index: 60; }
  #bg_wrapper.active {
    opacity: 1; }
  @media screen and (max-width: 812px) {
    #bg_wrapper {
      background: rgba(0, 0, 0, 0.1) url("../images/dots_bk.png?ver=20200322") repeat 0 0; } }

.content {
  position: relative;
  width: 800px;
  margin: 0 auto;
  color: #FAFAFA;
  padding: 260px 0px 140px;
  text-align: justify;
  text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3); }
  .content p {
    font-size: 0.9375rem;
    line-height: 2.25em; }
    .content p.subtext {
      font-size: 0.75rem;
      margin-top: -2.4em;
      padding-bottom: 3.25em; }
    .content p.sups {
      font-size: 0.75rem;
      line-height: 2em; }
  .content h2 {
    font-size: 1.3125rem;
    line-height: 2.25em; }
  @media screen and (max-width: 812px) {
    .content {
      width: 100%;
      padding: 200px 20px 60px; }
      .content p {
        font-size: 0.9375rem; } }

#information,
#outline,
#resource {
  position: fixed;
  text-align: center;
  z-index: 20;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  display: none; }

#information {
  z-index: 20;
  -webkit-mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.2) 200px, black 270px, black calc(100% - 100px), transparent);
  mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.2) 200px, black 270px, black calc(100% - 160px), rgba(0, 0, 0, 0.2) calc(100% - 100px), transparent);
  overflow-y: auto; }
  #information.active {
    display: block;
    opacity: 0;
    animation: fadeIn 1s ease 1s forwards; }
  #information .content {
    text-align: center; }
  @media screen and (max-width: 812px) {
    #information {
      -webkit-mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.2) 160px, black 200px, black calc(100% - 100px), transparent);
      mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.2) 160px, black 200px, black calc(100% - 100px), transparent); } }

#performer span {
  white-space: nowrap;
  display: inline-block;
  margin: 0 0.5em 0; }

#outline {
  z-index: 20;
  -webkit-mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.1) 200px, black 280px, black calc(100% - 100px), transparent);
  mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.1) 200px, black 280px, black calc(100% - 160px), rgba(0, 0, 0, 0.2) calc(100% - 100px), transparent);
  overflow-y: auto; }
  #outline.active {
    display: block;
    opacity: 0;
    animation: fadeIn 1s ease 1s forwards; }
  @media screen and (max-width: 812px) {
    #outline {
      -webkit-mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.2) 160px, black 200px, black calc(100% - 100px), transparent);
      mask-image: linear-gradient(to bottom, transparent, transparent 30px, rgba(0, 0, 0, 0.2) 160px, black 200px, black calc(100% - 100px), transparent); } }

#resource {
  z-index: 100;
  overflow-y: auto; }
  #resource .content {
    padding: 50px 0 140px;
    text-shadow: none;
    color: #333;
    font-family: toppan-bunkyu-mincho-pr6n, "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "游明朝体", "Yu Mincho", YuMincho, "ＭＳ Ｐ明朝", Georgia, serif;
    max-width: 960px;
    width: 90%;
    /*&:before{
        content:"";
        display: block;
        position: absolute;
        z-index: -1;
        max-width: 1000px;
        width: 100%;
        height: 100%;
        left:0;
        top:0;
        background-color: #FEFEFE;
    }*/ }
    #resource .content p {
      padding-bottom: 1.25em; }
    #resource .content p.spec {
      line-height: 1.75em;
      border-left: 4px solid #DDD;
      padding: 0.2em 0 0 1em;
      margin: 0.5em 0 1.5em; }
    #resource .content article {
      padding: 80px;
      background-color: #FEFEFE;
      border-radius: 2px;
      position: relative; }
      #resource .content article p:last-child {
        padding-bottom: 0; }
      #resource .content article :before {
        content: "";
        display: block;
        position: absolute;
        z-index: -1;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        background-color: #FEFEFE;
        border-radius: 2px; }
  #resource h3 {
    font-size: 1.25rem;
    line-height: 1.75em;
    padding-bottom: 0.5em; }
  #resource h4 {
    font-size: 1rem;
    line-height: 2.25em; }
  #resource.active {
    display: block;
    opacity: 0;
    animation: fadeIn 1s ease 1s forwards; }
  @media screen and (max-width: 812px) {
    #resource {
      padding: 5px 0 60px; }
      #resource .content {
        width: calc(100% - 10px);
        padding: 0; }
        #resource .content:before {
          display: none; }
        #resource .content article {
          padding: 15px 15px 20px;
          background-color: #FEFEFE; } }

.btn_close_w {
  opacity: 0.7; }

.rsc_block {
  margin: 0 0 5rem 0; }
  @media screen and (max-width: 812px) {
    .rsc_block {
      margin: 0 0 6rem 0; } }

.rsc_image {
  font-size: 0;
  line-height: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  align-content: flex-start;
  margin: 0 0 1.25rem 0; }
  .rsc_image img {
    max-width: calc(50% - 2px);
    height: auto;
    width: auto;
    margin-bottom: 4px;
    display: inline; }
  @media screen and (max-width: 812px) {
    .rsc_image img {
      max-width: 100%;
      width: 100%;
      margin-bottom: 4px; } }

/*------------------------------------------------------------------

Glitch

--------------------------------------------------------------------*/
#glicth_wrapper {
  margin: -4em 0 2.5rem;
  transform: scale(0.25, 0.25);
  transform-origin: left center; }

/* Our mixin positions a copy of our text
directly on our existing text, while
also setting content to the appropriate
text set in the data-text attribute. */
.glitch {
  position: relative;
  color: #FEFEFE;
  font-size: 4rem !important;
  letter-spacing: .3em;
  /* Animation provies a slight random skew. Check bottom of doc
  for more information on how to random skew. */
  animation: glitch-skew 1s infinite linear alternate-reverse; }
  .glitch::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    left: 2px;
    text-shadow: -2px 0 #ff00c1;
    /* Creates an initial clip for our glitch. This works in
    a typical top,right,bottom,left fashion and creates a mask
    to only show a certain part of the glitch at a time. */
    clip: rect(44px, 450px, 56px, 0);
    /* Runs our glitch-anim defined below to run in a 5s loop, infinitely,
    with an alternating animation to keep things fresh. */
    animation: glitch-anim 5s infinite linear alternate-reverse; }
  .glitch::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    left: -2px;
    text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1;
    animation: glitch-anim2 1s infinite linear alternate-reverse; }

/* Creates an animation with 20 steaps. For each step, it calculates 
a percentage for the specific step. It then generates a random clip
box to be used for the random glitch effect. Also adds a very subtle
skew to change the 'thickness' of the glitch.*/
@keyframes glitch-anim {
  0% {
    clip: rect(19px, 9999px, 66px, 0);
    transform: skew(0.07deg); }
  5% {
    clip: rect(31px, 9999px, 63px, 0);
    transform: skew(0.56deg); }
  10% {
    clip: rect(100px, 9999px, 4px, 0);
    transform: skew(0.19deg); }
  15% {
    clip: rect(42px, 9999px, 63px, 0);
    transform: skew(0.18deg); }
  20% {
    clip: rect(72px, 9999px, 85px, 0);
    transform: skew(0.06deg); }
  25% {
    clip: rect(33px, 9999px, 57px, 0);
    transform: skew(0.28deg); }
  30% {
    clip: rect(47px, 9999px, 57px, 0);
    transform: skew(0.14deg); }
  35% {
    clip: rect(89px, 9999px, 45px, 0);
    transform: skew(0.59deg); }
  40% {
    clip: rect(43px, 9999px, 5px, 0);
    transform: skew(0.15deg); }
  45% {
    clip: rect(77px, 9999px, 88px, 0);
    transform: skew(0.92deg); }
  50% {
    clip: rect(38px, 9999px, 26px, 0);
    transform: skew(0.25deg); }
  55% {
    clip: rect(38px, 9999px, 41px, 0);
    transform: skew(0.89deg); }
  60% {
    clip: rect(61px, 9999px, 76px, 0);
    transform: skew(0.9deg); }
  65% {
    clip: rect(86px, 9999px, 85px, 0);
    transform: skew(0.89deg); }
  70% {
    clip: rect(68px, 9999px, 18px, 0);
    transform: skew(0.73deg); }
  75% {
    clip: rect(82px, 9999px, 28px, 0);
    transform: skew(0.19deg); }
  80% {
    clip: rect(73px, 9999px, 76px, 0);
    transform: skew(0.52deg); }
  85% {
    clip: rect(85px, 9999px, 77px, 0);
    transform: skew(0.47deg); }
  90% {
    clip: rect(59px, 9999px, 73px, 0);
    transform: skew(0.38deg); }
  95% {
    clip: rect(100px, 9999px, 79px, 0);
    transform: skew(0.38deg); }
  100% {
    clip: rect(19px, 9999px, 89px, 0);
    transform: skew(0.52deg); } }
@keyframes glitch-anim2 {
  0% {
    clip: rect(23px, 9999px, 31px, 0);
    transform: skew(0.44deg); }
  5% {
    clip: rect(8px, 9999px, 38px, 0);
    transform: skew(0.55deg); }
  10% {
    clip: rect(6px, 9999px, 72px, 0);
    transform: skew(0.35deg); }
  15% {
    clip: rect(86px, 9999px, 75px, 0);
    transform: skew(0.73deg); }
  20% {
    clip: rect(94px, 9999px, 60px, 0);
    transform: skew(0.38deg); }
  25% {
    clip: rect(41px, 9999px, 50px, 0);
    transform: skew(0.07deg); }
  30% {
    clip: rect(6px, 9999px, 30px, 0);
    transform: skew(0.44deg); }
  35% {
    clip: rect(44px, 9999px, 17px, 0);
    transform: skew(0.95deg); }
  40% {
    clip: rect(2px, 9999px, 19px, 0);
    transform: skew(0.46deg); }
  45% {
    clip: rect(2px, 9999px, 50px, 0);
    transform: skew(0.39deg); }
  50% {
    clip: rect(35px, 9999px, 4px, 0);
    transform: skew(0.48deg); }
  55% {
    clip: rect(41px, 9999px, 19px, 0);
    transform: skew(0.29deg); }
  60% {
    clip: rect(93px, 9999px, 28px, 0);
    transform: skew(0.22deg); }
  65% {
    clip: rect(16px, 9999px, 85px, 0);
    transform: skew(0.77deg); }
  70% {
    clip: rect(65px, 9999px, 74px, 0);
    transform: skew(0.69deg); }
  75% {
    clip: rect(16px, 9999px, 36px, 0);
    transform: skew(0.19deg); }
  80% {
    clip: rect(47px, 9999px, 70px, 0);
    transform: skew(0.54deg); }
  85% {
    clip: rect(39px, 9999px, 55px, 0);
    transform: skew(0.98deg); }
  90% {
    clip: rect(44px, 9999px, 7px, 0);
    transform: skew(0.54deg); }
  95% {
    clip: rect(21px, 9999px, 61px, 0);
    transform: skew(0.36deg); }
  100% {
    clip: rect(45px, 9999px, 35px, 0);
    transform: skew(0.96deg); } }
@keyframes glitch-skew {
  0% {
    transform: skew(3deg); }
  10% {
    transform: skew(2deg); }
  20% {
    transform: skew(4deg); }
  30% {
    transform: skew(-3deg); }
  40% {
    transform: skew(0deg); }
  50% {
    transform: skew(-4deg); }
  60% {
    transform: skew(5deg); }
  70% {
    transform: skew(-4deg); }
  80% {
    transform: skew(-3deg); }
  90% {
    transform: skew(2deg); }
  100% {
    transform: skew(-3deg); } }
