@keyframes fontalicious {
  0% {
    font-family: helvetica;
  }
  10% {
    font-family: times;
  }
  20% {
    font-family: fantasy;
  }
  30% {
    font-family: monospace;
  }
  40% {
    font-family: Palatino;
  }
  50% {
    font-family: Tahoma;
  }
  60% {
    font-family: impact;
  }
  70% {
    font-family: cursive;
  }
  80% {
    font-family: monospace;
  }
  90% {
    font-family: fantasy;
  }
  99% {
    font-family: futura;
  }
  100% {
  }
}

.fontalicious {
  animation-name: fontalicious;
  animation-iteration-count: 4;
  animation-duration: 1s;
}

/**
 * Animations
 */
.animated {
  animation-fill-mode: both;
}

/**
 * Intensifies
 * - Slowly increases in shaking and madness
 */
@keyframes intensifies {
  0% {
    transform: translate(1px, 1px) scale(1);
  }
  1% {
    transform: translate(-1px, -1px) scale(1.02);
  }
  2% {
    transform: translate(1px, 2px) scale(1.04);
  }
  3% {
    transform: translate(-3px, -1px) scale(1.06);
  }
  4% {
    transform: translate(3px, 3px) scale(1.08);
  }
  5% {
    transform: translate(-4px, -5px) scale(1.1);
  }
  6% {
    transform: translate(4px, 4px) scale(1.12);
  }
  7% {
    transform: translate(-1px, -2px) scale(1.14);
  }
  8% {
    transform: translate(5px, 1px) scale(1.16);
  }
  9% {
    transform: translate(-4px, -10px) scale(1.18);
  }
  10% {
    transform: translate(7px, 7px) scale(1.2);
  }
  11% {
    transform: translate(-8px, -7px) scale(1.22);
  }
  12% {
    transform: translate(1px, 8px) scale(1.24);
  }
  13% {
    transform: translate(-2px, -10px) scale(1.26);
  }
  14% {
    transform: translate(14px, 7px) scale(1.28);
  }
  15% {
    transform: translate(-14px, -6px) scale(1.3);
  }
  16% {
    transform: translate(2px, 6px) scale(1.32);
  }
  17% {
    transform: translate(-16px, -4px) scale(1.34);
  }
  18% {
    transform: translate(11px, 12px) scale(1.36);
  }
  19% {
    transform: translate(-4px, -17px) scale(1.38);
  }
  20% {
    transform: translate(12px, 7px) scale(1.4);
  }
  21% {
    transform: translate(-11px, -13px) scale(1.42);
  }
  22% {
    transform: translate(4px, 22px) scale(1.44);
  }
  23% {
    transform: translate(-13px, -24px) scale(1.46);
  }
  24% {
    transform: translate(23px, 5px) scale(1.48);
  }
  25% {
    transform: translate(-15px, -16px) scale(1.5);
  }
  26% {
    transform: translate(16px, 7px) scale(1.52);
  }
  27% {
    transform: translate(-25px, -11px) scale(1.54);
  }
  28% {
    transform: translate(25px, 20px) scale(1.56);
  }
  29% {
    transform: translate(-16px, -20px) scale(1.58);
  }
  30% {
    transform: translate(12px, 23px) scale(1.6);
  }
  31% {
    transform: translate(-15px, -18px) scale(1.62);
  }
  32% {
    transform: translate(3px, 27px) scale(1.64);
  }
  33% {
    transform: translate(-18px, -14px) scale(1.66);
  }
  34% {
    transform: translate(14px, 9px) scale(1.68);
  }
  35% {
    transform: translate(-28px, -23px) scale(1.7);
  }
  36% {
    transform: translate(12px, 30px) scale(1.72);
  }
  37% {
    transform: translate(-25px, -27px) scale(1.74);
  }
  38% {
    transform: translate(39px, 1px) scale(1.76);
  }
  39% {
    transform: translate(-10px, -32px) scale(1.78);
  }
  40% {
    transform: translate(15px, 35px) scale(1.8);
  }
  41% {
    transform: translate(-27px, -15px) scale(1.82);
  }
  42% {
    transform: translate(15px, 41px) scale(1.84);
  }
  43% {
    transform: translate(-39px, -4px) scale(1.86);
  }
  44% {
    transform: translate(34px, 19px) scale(1.88);
  }
  45% {
    transform: translate(-4px, -45px) scale(1.9);
  }
  46% {
    transform: translate(38px, 7px) scale(1.92);
  }
  47% {
    transform: translate(-21px, -1px) scale(1.94);
  }
  48% {
    transform: translate(19px, 6px) scale(1.96);
  }
  49% {
    transform: translate(-49px, -25px) scale(1.98);
  }
  50% {
    transform: translate(25px, 25px) scale(2);
  }
  51% {
    transform: translate(-33px, -24px) scale(2.02);
  }
  52% {
    transform: translate(45px, 36px) scale(2.04);
  }
  53% {
    transform: translate(-44px, -7px) scale(2.06);
  }
  54% {
    transform: translate(30px, 28px) scale(2.08);
  }
  55% {
    transform: translate(-4px, -27px) scale(2.1);
  }
  56% {
    transform: translate(17px, 18px) scale(2.12);
  }
  57% {
    transform: translate(-4px, -12px) scale(2.14);
  }
  58% {
    transform: translate(1px, 50px) scale(2.16);
  }
  59% {
    transform: translate(-8px, -36px) scale(2.18);
  }
  60% {
    transform: translate(29px, 26px) scale(2.2);
  }
  61% {
    transform: translate(-24px, -21px) scale(2.22);
  }
  62% {
    transform: translate(60px, 21px) scale(2.24);
  }
  63% {
    transform: translate(-9px, -36px) scale(2.26);
  }
  64% {
    transform: translate(44px, 1px) scale(2.28);
  }
  65% {
    transform: translate(-38px, -40px) scale(2.3);
  }
  66% {
    transform: translate(42px, 33px) scale(2.32);
  }
  67% {
    transform: translate(-17px, -45px) scale(2.34);
  }
  68% {
    transform: translate(1px, 17px) scale(2.36);
  }
  69% {
    transform: translate(-20px, -62px) scale(2.38);
  }
  70% {
    transform: translate(6px, 53px) scale(2.4);
  }
  71% {
    transform: translate(-64px, -14px) scale(2.42);
  }
  72% {
    transform: translate(67px, 48px) scale(2.44);
  }
  73% {
    transform: translate(-47px, -39px) scale(2.46);
  }
  74% {
    transform: translate(5px, 62px) scale(2.48);
  }
  75% {
    transform: translate(-29px, -50px) scale(2.5);
  }
  76% {
    transform: translate(5px, 60px) scale(2.52);
  }
  77% {
    transform: translate(-51px, -76px) scale(2.54);
  }
  78% {
    transform: translate(58px, 16px) scale(2.56);
  }
  79% {
    transform: translate(-79px, -32px) scale(2.58);
  }
  80% {
    transform: translate(41px, 22px) scale(2.6);
  }
  81% {
    transform: translate(-43px, -48px) scale(2.62);
  }
  82% {
    transform: translate(35px, 65px) scale(2.64);
  }
  83% {
    transform: translate(-65px, -84px) scale(2.66);
  }
  84% {
    transform: translate(62px, 73px) scale(2.68);
  }
  85% {
    transform: translate(-48px, -40px) scale(2.7);
  }
  86% {
    transform: translate(30px, 25px) scale(2.72);
  }
  87% {
    transform: translate(-16px, -46px) scale(2.74);
  }
  88% {
    transform: translate(81px, 73px) scale(2.76);
  }
  89% {
    transform: translate(-79px, -76px) scale(2.78);
  }
  90% {
    transform: translate(55px, 62px) scale(2.8);
  }
  91% {
    transform: translate(-44px, -56px) scale(2.82);
  }
  92% {
    transform: translate(46px, 91px) scale(2.84);
  }
  93% {
    transform: translate(-48px, -34px) scale(2.86);
  }
  94% {
    transform: translate(18px, 10px) scale(2.88);
  }
  95% {
    transform: translate(-11px, -4px) scale(2.9);
  }
  96% {
    transform: translate(14px, 80px) scale(2.92);
  }
  97% {
    transform: translate(-29px, -54px) scale(2.94);
  }
  98% {
    transform: translate(51px, 95px) scale(2.96);
  }
  99% {
    transform: translate(-71px, -4px) scale(2.98);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

.intensifies {
  animation-timing-function: ease-out;
  transform-origin: bottom center;
  animation-name: intensifies;
  animation-duration: 5s;
}

/**
 * Animations
 */
.animated {
  animation-fill-mode: both;
}

/**
 * Intensifies
 * - Slowly increases in shaking and madness
 */
@keyframes shakeit {
  0% {
    transform: translate(0px, 0) rotate(0deg);
  }
  1% {
    transform: translate(-2px, 0) rotate(-1deg);
  }
  2% {
    transform: translate(4px, 0) rotate(2deg);
  }
  3% {
    transform: translate(-6px, 0) rotate(-3deg);
  }
  4% {
    transform: translate(8px, 0) rotate(4deg);
  }
  5% {
    transform: translate(-10px, 0) rotate(-5deg);
  }
  6% {
    transform: translate(12px, 0) rotate(6deg);
  }
  7% {
    transform: translate(-14px, 0) rotate(-7deg);
  }
  8% {
    transform: translate(16px, 0) rotate(8deg);
  }
  9% {
    transform: translate(-18px, 0) rotate(-9deg);
  }
  10% {
    transform: translate(20px, 0) rotate(8deg);
  }
  11% {
    transform: translate(-22px, 0) rotate(-8deg);
  }
  12% {
    transform: translate(24px, 0) rotate(8deg);
  }
  13% {
    transform: translate(-26px, 0) rotate(-8deg);
  }
  14% {
    transform: translate(28px, 0) rotate(8deg);
  }
  15% {
    transform: translate(-30px, 0) rotate(-8deg);
  }
  16% {
    transform: translate(32px, 0) rotate(8deg);
  }
  17% {
    transform: translate(-34px, 0) rotate(-8deg);
  }
  18% {
    transform: translate(36px, 0) rotate(8deg);
  }
  19% {
    transform: translate(-38px, 0) rotate(-8deg);
  }
  20% {
    transform: translate(40px, 0) rotate(8deg);
  }
  21% {
    transform: translate(-42px, 0) rotate(-8deg);
  }
  22% {
    transform: translate(44px, 0) rotate(8deg);
  }
  23% {
    transform: translate(-46px, 0) rotate(-8deg);
  }
  24% {
    transform: translate(48px, 0) rotate(8deg);
  }
  25% {
    transform: translate(-50px, 0) rotate(-8deg);
  }
  26% {
    transform: translate(52px, 0) rotate(8deg);
  }
  27% {
    transform: translate(-54px, 0) rotate(-8deg);
  }
  28% {
    transform: translate(56px, 0) rotate(8deg);
  }
  29% {
    transform: translate(-58px, 0) rotate(-8deg);
  }
  30% {
    transform: translate(60px, 0) rotate(8deg);
  }
  31% {
    transform: translate(-62px, 0) rotate(-8deg);
  }
  32% {
    transform: translate(64px, 0) rotate(8deg);
  }
  33% {
    transform: translate(-66px, 0) rotate(-8deg);
  }
  34% {
    transform: translate(68px, 0) rotate(8deg);
  }
  35% {
    transform: translate(-70px, 0) rotate(-8deg);
  }
  36% {
    transform: translate(72px, 0) rotate(8deg);
  }
  37% {
    transform: translate(-74px, 0) rotate(-8deg);
  }
  38% {
    transform: translate(76px, 0) rotate(8deg);
  }
  39% {
    transform: translate(-78px, 0) rotate(-8deg);
  }
  40% {
    transform: translate(80px, 0) rotate(8deg);
  }
  41% {
    transform: translate(-82px, 0) rotate(-8deg);
  }
  42% {
    transform: translate(84px, 0) rotate(8deg);
  }
  43% {
    transform: translate(-86px, 0) rotate(-8deg);
  }
  44% {
    transform: translate(88px, 0) rotate(8deg);
  }
  45% {
    transform: translate(-90px, 0) rotate(-8deg);
  }
  46% {
    transform: translate(92px, 0) rotate(8deg);
  }
  47% {
    transform: translate(-94px, 0) rotate(-8deg);
  }
  48% {
    transform: translate(96px, 0) rotate(8deg);
  }
  49% {
    transform: translate(-98px, 0) rotate(-8deg);
  }
  50% {
    transform: translate(100px, 0) rotate(8deg);
  }
  51% {
    transform: translate(-102px, 0) rotate(-8deg);
  }
  52% {
    transform: translate(104px, 0) rotate(8deg);
  }
  53% {
    transform: translate(-106px, 0) rotate(-8deg);
  }
  54% {
    transform: translate(108px, 0) rotate(8deg);
  }
  55% {
    transform: translate(-110px, 0) rotate(-8deg);
  }
  56% {
    transform: translate(112px, 0) rotate(8deg);
  }
  57% {
    transform: translate(-114px, 0) rotate(-8deg);
  }
  58% {
    transform: translate(116px, 0) rotate(8deg);
  }
  59% {
    transform: translate(-118px, 0) rotate(-8deg);
  }
  60% {
    transform: translate(120px, 0) rotate(8deg);
  }
  61% {
    transform: translate(-122px, 0) rotate(-8deg);
  }
  62% {
    transform: translate(124px, 0) rotate(8deg);
  }
  63% {
    transform: translate(-126px, 0) rotate(-8deg);
  }
  64% {
    transform: translate(128px, 0) rotate(8deg);
  }
  65% {
    transform: translate(-130px, 0) rotate(-8deg);
  }
  66% {
    transform: translate(132px, 0) rotate(8deg);
  }
  67% {
    transform: translate(-134px, 0) rotate(-8deg);
  }
  68% {
    transform: translate(136px, 0) rotate(8deg);
  }
  69% {
    transform: translate(-138px, 0) rotate(-8deg);
  }
  70% {
    transform: translate(140px, 0) rotate(8deg);
  }
  71% {
    transform: translate(-142px, 0) rotate(-8deg);
  }
  72% {
    transform: translate(144px, 0) rotate(8deg);
  }
  73% {
    transform: translate(-146px, 0) rotate(-8deg);
  }
  74% {
    transform: translate(148px, 0) rotate(8deg);
  }
  75% {
    transform: translate(-150px, 0) rotate(-8deg);
  }
  76% {
    transform: translate(152px, 0) rotate(8deg);
  }
  77% {
    transform: translate(-154px, 0) rotate(-8deg);
  }
  78% {
    transform: translate(156px, 0) rotate(8deg);
  }
  79% {
    transform: translate(-158px, 0) rotate(-8deg);
  }
  80% {
    transform: translate(160px, 0) rotate(8deg);
  }
  81% {
    transform: translate(-162px, 0) rotate(-8deg);
  }
  82% {
    transform: translate(164px, 0) rotate(8deg);
  }
  83% {
    transform: translate(-166px, 0) rotate(-8deg);
  }
  84% {
    transform: translate(168px, 0) rotate(8deg);
  }
  85% {
    transform: translate(-170px, 0) rotate(-8deg);
  }
  86% {
    transform: translate(172px, 0) rotate(8deg);
  }
  87% {
    transform: translate(-174px, 0) rotate(-8deg);
  }
  88% {
    transform: translate(176px, 0) rotate(8deg);
  }
  89% {
    transform: translate(-178px, 0) rotate(-8deg);
  }
  90% {
    transform: translate(180px, 0) rotate(8deg);
  }
  91% {
    transform: translate(-182px, 0) rotate(-8deg);
  }
  92% {
    transform: translate(184px, 0) rotate(8deg);
  }
  93% {
    transform: translate(-186px, 0) rotate(-8deg);
  }
  94% {
    transform: translate(188px, 0) rotate(8deg);
  }
  95% {
    transform: translate(-190px, 0) rotate(-8deg);
  }
  96% {
    transform: translate(192px, 0) rotate(8deg);
  }
  97% {
    transform: translate(-194px, 0) rotate(-8deg);
  }
  98% {
    transform: translate(196px, 0) rotate(8deg);
  }
  99% {
    transform: translate(-198px, 0) rotate(-8deg);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

.shakeit {
  animation-timing-function: ease-in;
  transform-origin: bottom center;
  animation-name: shakeit;
  animation-duration: 12s;
}

@keyframes strobe {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  1% {
    opacity: 0;
    transform: scale(1.1);
  }
  2% {
    opacity: 1;
    transform: scale(1.2);
  }
  3% {
    opacity: 0;
    transform: scale(1.3);
  }
  4% {
    opacity: 1;
    transform: scale(1.4);
  }
  5% {
    opacity: 0;
    transform: scale(1.5);
  }
  6% {
    opacity: 1;
    transform: scale(1.6);
  }
  7% {
    opacity: 0;
    transform: scale(1.7);
  }
  8% {
    opacity: 1;
    transform: scale(1.8);
  }
  9% {
    opacity: 0;
    transform: scale(1.9);
  }
  10% {
    opacity: 1;
    transform: scale(2);
  }
  11% {
    opacity: 0;
    transform: scale(2.1);
  }
  12% {
    opacity: 1;
    transform: scale(2.2);
  }
  13% {
    opacity: 0;
    transform: scale(2.3);
  }
  14% {
    opacity: 1;
    transform: scale(2.4);
  }
  15% {
    opacity: 0;
    transform: scale(2.5);
  }
  16% {
    opacity: 1;
    transform: scale(2.6);
  }
  17% {
    opacity: 0;
    transform: scale(2.7);
  }
  18% {
    opacity: 1;
    transform: scale(2.8);
  }
  19% {
    opacity: 0;
    transform: scale(2.9);
  }
  20% {
    opacity: 1;
    transform: scale(3);
  }
  21% {
    opacity: 0;
    transform: scale(3.1);
  }
  22% {
    opacity: 1;
    transform: scale(3.2);
  }
  23% {
    opacity: 0;
    transform: scale(3.3);
  }
  24% {
    opacity: 1;
    transform: scale(3.4);
  }
  25% {
    opacity: 0;
    transform: scale(3.5);
  }
  26% {
    opacity: 1;
    transform: scale(3.6);
  }
  27% {
    opacity: 0;
    transform: scale(3.7);
  }
  28% {
    opacity: 1;
    transform: scale(3.8);
  }
  29% {
    opacity: 0;
    transform: scale(3.9);
  }
  30% {
    opacity: 1;
    transform: scale(4);
  }
  31% {
    opacity: 0;
    transform: scale(4.1);
  }
  32% {
    opacity: 1;
    transform: scale(4.2);
  }
  33% {
    opacity: 0;
    transform: scale(4.3);
  }
  34% {
    opacity: 1;
    transform: scale(4.4);
  }
  35% {
    opacity: 0;
    transform: scale(4.5);
  }
  36% {
    opacity: 1;
    transform: scale(4.6);
  }
  37% {
    opacity: 0;
    transform: scale(4.7);
  }
  38% {
    opacity: 1;
    transform: scale(4.8);
  }
  39% {
    opacity: 0;
    transform: scale(4.9);
  }
  40% {
    opacity: 1;
    transform: scale(5);
  }
  41% {
    opacity: 0;
    transform: scale(5.1);
  }
  42% {
    opacity: 1;
    transform: scale(5.2);
  }
  43% {
    opacity: 0;
    transform: scale(5.3);
  }
  44% {
    opacity: 1;
    transform: scale(5.4);
  }
  45% {
    opacity: 0;
    transform: scale(5.5);
  }
  46% {
    opacity: 1;
    transform: scale(5.6);
  }
  47% {
    opacity: 0;
    transform: scale(5.7);
  }
  48% {
    opacity: 1;
    transform: scale(5.8);
  }
  49% {
    opacity: 0;
    transform: scale(5.9);
  }
  50% {
    opacity: 1;
    transform: scale(6);
  }
  51% {
    opacity: 0;
    transform: scale(6.1);
  }
  52% {
    opacity: 1;
    transform: scale(6.2);
  }
  53% {
    opacity: 0;
    transform: scale(6.3);
  }
  54% {
    opacity: 1;
    transform: scale(6.4);
  }
  55% {
    opacity: 0;
    transform: scale(6.5);
  }
  56% {
    opacity: 1;
    transform: scale(6.6);
  }
  57% {
    opacity: 0;
    transform: scale(6.7);
  }
  58% {
    opacity: 1;
    transform: scale(6.8);
  }
  59% {
    opacity: 0;
    transform: scale(6.9);
  }
  60% {
    opacity: 1;
    transform: scale(7);
  }
  61% {
    opacity: 0;
    transform: scale(7.1);
  }
  62% {
    opacity: 1;
    transform: scale(7.2);
  }
  63% {
    opacity: 0;
    transform: scale(7.3);
  }
  64% {
    opacity: 1;
    transform: scale(7.4);
  }
  65% {
    opacity: 0;
    transform: scale(7.5);
  }
  66% {
    opacity: 1;
    transform: scale(7.6);
  }
  67% {
    opacity: 0;
    transform: scale(7.7);
  }
  68% {
    opacity: 1;
    transform: scale(7.8);
  }
  69% {
    opacity: 0;
    transform: scale(7.9);
  }
  70% {
    opacity: 1;
    transform: scale(8);
  }
  71% {
    opacity: 0;
    transform: scale(8.1);
  }
  72% {
    opacity: 1;
    transform: scale(8.2);
  }
  73% {
    opacity: 0;
    transform: scale(8.3);
  }
  74% {
    opacity: 1;
    transform: scale(8.4);
  }
  75% {
    opacity: 0;
    transform: scale(8.5);
  }
  76% {
    opacity: 1;
    transform: scale(8.6);
  }
  77% {
    opacity: 0;
    transform: scale(8.7);
  }
  78% {
    opacity: 1;
    transform: scale(8.8);
  }
  79% {
    opacity: 0;
    transform: scale(8.9);
  }
  80% {
    opacity: 1;
    transform: scale(9);
  }
  81% {
    opacity: 0;
    transform: scale(9.1);
  }
  82% {
    opacity: 1;
    transform: scale(9.2);
  }
  83% {
    opacity: 0;
    transform: scale(9.3);
  }
  84% {
    opacity: 1;
    transform: scale(9.4);
  }
  85% {
    opacity: 0;
    transform: scale(9.5);
  }
  86% {
    opacity: 1;
    transform: scale(9.6);
  }
  87% {
    opacity: 0;
    transform: scale(9.7);
  }
  88% {
    opacity: 1;
    transform: scale(9.8);
  }
  89% {
    opacity: 0;
    transform: scale(9.9);
  }
  90% {
    opacity: 1;
    transform: scale(10);
  }
  91% {
    opacity: 0;
    transform: scale(10.1);
  }
  92% {
    opacity: 1;
    transform: scale(10.2);
  }
  93% {
    opacity: 0;
    transform: scale(10.3);
  }
  94% {
    opacity: 1;
    transform: scale(10.4);
  }
  95% {
    opacity: 0;
    transform: scale(10.5);
  }
  96% {
    opacity: 1;
    transform: scale(10.6);
  }
  97% {
    opacity: 0;
    transform: scale(10.7);
  }
  98% {
    opacity: 1;
    transform: scale(10.8);
  }
  99% {
    opacity: 0;
    transform: scale(10.9);
  }
  100% {
    opacity: 1;
    transform: 1;
  }
}

.strobe {
  animation-timing-function: ease-in-out;
  animation-name: strobe;
  animation-duration: 6s;
}

@keyframes twister {
  0% {
    transform: rotateZ(0deg);
  }
  10% {
    transform: rotateZ(360deg);
  }
  20% {
    transform: rotateZ(720deg);
  }
  30% {
    transform: rotateZ(1080deg);
  }
  40% {
    transform: rotateZ(1440deg);
  }
  50% {
    transform: rotateZ(1800deg);
  }
  60% {
    transform: rotateZ(2160deg);
  }
  70% {
    transform: rotateZ(2520deg);
  }
  80% {
  }
  90% {
  }
  100% {
  }
}

.twister {
  animation-name: twister;
  animation-duration: 5s;
  z-index: 1000;
}
