@charset "UTF-8";
/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */
.animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}
.animated.infinite {
  animation-iteration-count: infinite;
}
.animated.hinge {
  animation-duration: 2s;
}
.animated.zoomIn,
.animated.zoomOut {
  animation-duration: 0.3s;
}
.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
  animation-duration: 0.75s;
}
@keyframes bounce {
  from,
  20%,
  53%,
  80%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: translate3d(0, 0, 0);
  }
  40%,
  43% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -30px, 0);
  }
  70% {
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transform: translate3d(0, -15px, 0);
  }
  90% {
    transform: translate3d(0, -4px, 0);
  }
}
.bounce {
  animation-name: bounce;
  transform-origin: center bottom;
}
@keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }
  25%,
  75% {
    opacity: 0;
  }
}
.flash {
  animation-name: flash;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes pulse {
  from {
    transform: scale3d(1, 1, 1);
  }
  50% {
    transform: scale3d(1.05, 1.05, 1.05);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
.pulse {
  animation-name: pulse;
}
@keyframes rubberBand {
  from {
    transform: scale3d(1, 1, 1);
  }
  30% {
    transform: scale3d(1.25, 0.75, 1);
  }
  40% {
    transform: scale3d(0.75, 1.25, 1);
  }
  50% {
    transform: scale3d(1.15, 0.85, 1);
  }
  65% {
    transform: scale3d(0.95, 1.05, 1);
  }
  75% {
    transform: scale3d(1.05, 0.95, 1);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
.rubberBand {
  animation-name: rubberBand;
}
@keyframes shake {
  from,
  to {
    transform: translate3d(0, 0, 0);
  }
  10%,
  30%,
  50%,
  70%,
  90% {
    transform: translate3d(-10px, 0, 0);
  }
  20%,
  40%,
  60%,
  80% {
    transform: translate3d(10px, 0, 0);
  }
}
.shake {
  animation-name: shake;
}
@keyframes headShake {
  0% {
    transform: translateX(0);
  }
  6.5% {
    transform: translateX(-6px) rotateY(-9deg);
  }
  18.5% {
    transform: translateX(5px) rotateY(7deg);
  }
  31.5% {
    transform: translateX(-3px) rotateY(-5deg);
  }
  43.5% {
    transform: translateX(2px) rotateY(3deg);
  }
  50% {
    transform: translateX(0);
  }
}
.headShake {
  animation-timing-function: ease-in-out;
  animation-name: headShake;
}
@keyframes swing {
  20% {
    transform: rotate3d(0, 0, 1, 15deg);
  }
  40% {
    transform: rotate3d(0, 0, 1, -10deg);
  }
  60% {
    transform: rotate3d(0, 0, 1, 5deg);
  }
  80% {
    transform: rotate3d(0, 0, 1, -5deg);
  }
  to {
    transform: rotate3d(0, 0, 1, 0deg);
  }
}
.swing {
  transform-origin: top center;
  animation-name: swing;
}
@keyframes tada {
  from {
    transform: scale3d(1, 1, 1);
  }
  10%,
  20% {
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%,
  50%,
  70%,
  90% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%,
  60%,
  80% {
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
  to {
    transform: scale3d(1, 1, 1);
  }
}
.tada {
  animation-name: tada;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes wobble {
  from {
    transform: none;
  }
  15% {
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }
  30% {
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }
  45% {
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }
  60% {
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }
  75% {
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }
  to {
    transform: none;
  }
}
.wobble {
  animation-name: wobble;
}
@keyframes jello {
  from,
  11.1%,
  to {
    transform: none;
  }
  22.2% {
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }
  33.3% {
    transform: skewX(6.25deg) skewY(6.25deg);
  }
  44.4% {
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }
  55.5% {
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }
  66.6% {
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }
  77.7% {
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }
  88.8% {
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}
.jello {
  animation-name: jello;
  transform-origin: center;
}
@keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    transform: scale3d(1.1, 1.1, 1.1);
  }
  40% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  60% {
    opacity: 1;
    transform: scale3d(1.03, 1.03, 1.03);
  }
  80% {
    transform: scale3d(0.97, 0.97, 0.97);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}
.bounceIn {
  animation-name: bounceIn;
}
@keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }
  75% {
    transform: translate3d(0, -10px, 0);
  }
  90% {
    transform: translate3d(0, 5px, 0);
  }
  to {
    transform: none;
  }
}
.bounceInDown {
  animation-name: bounceInDown;
}
@keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }
  75% {
    transform: translate3d(-10px, 0, 0);
  }
  90% {
    transform: translate3d(5px, 0, 0);
  }
  to {
    transform: none;
  }
}
.bounceInLeft {
  animation-name: bounceInLeft;
}
@keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }
  75% {
    transform: translate3d(10px, 0, 0);
  }
  90% {
    transform: translate3d(-5px, 0, 0);
  }
  to {
    transform: none;
  }
}
.bounceInRight {
  animation-name: bounceInRight;
}
@keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  75% {
    transform: translate3d(0, 10px, 0);
  }
  90% {
    transform: translate3d(0, -5px, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.bounceInUp {
  animation-name: bounceInUp;
}
@keyframes bounceOut {
  20% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  50%,
  55% {
    opacity: 1;
    transform: scale3d(1.1, 1.1, 1.1);
  }
  to {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
}
.bounceOut {
  animation-name: bounceOut;
}
@keyframes bounceOutDown {
  20% {
    transform: translate3d(0, 10px, 0);
  }
  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
.bounceOutDown {
  animation-name: bounceOutDown;
}
@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}
.bounceOutLeft {
  animation-name: bounceOutLeft;
}
@keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}
.bounceOutRight {
  animation-name: bounceOutRight;
}
@keyframes bounceOutUp {
  20% {
    transform: translate3d(0, -10px, 0);
  }
  40%,
  45% {
    opacity: 1;
    transform: translate3d(0, 20px, 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
.bounceOutUp {
  animation-name: bounceOutUp;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fadeIn {
  animation-name: fadeIn;
}
.fadeIn {
  animation-name: fadeIn;
}
@keyframes fadeInHalf {
  from {
    opacity: 0;
  }
  to {
    opacity: 0.5;
  }
}
.fadeInHalf {
  animation-name: fadeInHalf;
}
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInDown {
  animation-name: fadeInDown;
}
@keyframes fadeInDownBig {
  from {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInDownBig {
  animation-name: fadeInDownBig;
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInLeft {
  animation-name: fadeInLeft;
}
@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInLeftBig {
  animation-name: fadeInLeftBig;
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInRight {
  animation-name: fadeInRight;
}
@keyframes fadeInRightBig {
  from {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInRightBig {
  animation-name: fadeInRightBig;
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInUp {
  animation-name: fadeInUp;
}
@keyframes fadeInUpBig {
  from {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.fadeInUpBig {
  animation-name: fadeInUpBig;
}
@keyframes fadeOut {
  to {
    opacity: 0;
  }
}
.fadeOut {
  animation-name: fadeOut;
}
@keyframes fadeOutDown {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, 100%, 0);
  }
}
.fadeOutDown {
  animation-name: fadeOutDown;
}
@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
.fadeOutDownBig {
  animation-name: fadeOutDownBig;
}
@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(-100%, 0, 0);
  }
}
.fadeOutLeft {
  animation-name: fadeOutLeft;
}
@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(-2000px, 0, 0);
  }
}
.fadeOutLeftBig {
  animation-name: fadeOutLeftBig;
}
@keyframes fadeOutRight {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0);
  }
}
.fadeOutRight {
  animation-name: fadeOutRight;
}
@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0);
  }
}
.fadeOutRightBig {
  animation-name: fadeOutRightBig;
}
@keyframes fadeOutUp {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, -100%, 0);
  }
}
.fadeOutUp {
  animation-name: fadeOutUp;
}
@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
.fadeOutUpBig {
  animation-name: fadeOutUpBig;
}
@keyframes flip {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    animation-timing-function: ease-out;
  }
  40% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    animation-timing-function: ease-out;
  }
  50% {
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    animation-timing-function: ease-in;
  }
  80% {
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    animation-timing-function: ease-in;
  }
  to {
    transform: perspective(400px);
    animation-timing-function: ease-in;
  }
}
.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  animation-name: flip;
}
@keyframes flipInX {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    animation-timing-function: ease-in;
  }
  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }
  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }
  to {
    transform: perspective(400px);
  }
}
.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  animation-name: flipInX;
}
@keyframes flipInY {
  from {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    animation-timing-function: ease-in;
  }
  60% {
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }
  80% {
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }
  to {
    transform: perspective(400px);
  }
}
.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  animation-name: flipInY;
}
@keyframes flipOutX {
  from {
    transform: perspective(400px);
  }
  30% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }
  to {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}
.flipOutX {
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
}
@keyframes flipOutY {
  from {
    transform: perspective(400px);
  }
  30% {
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }
  to {
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}
.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  animation-name: flipOutY;
}
@keyframes lightSpeedIn {
  from {
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }
  60% {
    transform: skewX(20deg);
    opacity: 1;
  }
  80% {
    transform: skewX(-5deg);
    opacity: 1;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
.lightSpeedIn {
  animation-name: lightSpeedIn;
  animation-timing-function: ease-out;
}
@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }
  to {
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}
.lightSpeedOut {
  animation-name: lightSpeedOut;
  animation-timing-function: ease-in;
}
@keyframes rotateIn {
  from {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }
  to {
    transform-origin: center;
    transform: none;
    opacity: 1;
  }
}
.rotateIn {
  animation-name: rotateIn;
}
@keyframes rotateInDownLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInDownLeft {
  animation-name: rotateInDownLeft;
}
@keyframes rotateInDownRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInDownRight {
  animation-name: rotateInDownRight;
}
@keyframes rotateInUpLeft {
  from {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
  to {
    transform-origin: left bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInUpLeft {
  animation-name: rotateInUpLeft;
}
@keyframes rotateInUpRight {
  from {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }
  to {
    transform-origin: right bottom;
    transform: none;
    opacity: 1;
  }
}
.rotateInUpRight {
  animation-name: rotateInUpRight;
}
@keyframes rotateOut {
  from {
    transform-origin: center;
    opacity: 1;
  }
  to {
    transform-origin: center;
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}
.rotateOut {
  animation-name: rotateOut;
}
@keyframes rotateOutDownLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }
  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}
.rotateOutDownLeft {
  animation-name: rotateOutDownLeft;
}
@keyframes rotateOutDownRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }
  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}
.rotateOutDownRight {
  animation-name: rotateOutDownRight;
}
@keyframes rotateOutUpLeft {
  from {
    transform-origin: left bottom;
    opacity: 1;
  }
  to {
    transform-origin: left bottom;
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}
.rotateOutUpLeft {
  animation-name: rotateOutUpLeft;
}
@keyframes rotateOutUpRight {
  from {
    transform-origin: right bottom;
    opacity: 1;
  }
  to {
    transform-origin: right bottom;
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}
.rotateOutUpRight {
  animation-name: rotateOutUpRight;
}
@keyframes hinge {
  0% {
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }
  20%,
  60% {
    transform: rotate3d(0, 0, 1, 80deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
  }
  40%,
  80% {
    transform: rotate3d(0, 0, 1, 60deg);
    transform-origin: top left;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }
  to {
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}
.hinge {
  animation-name: hinge;
}
@keyframes jackInTheBox {
  from {
    opacity: 0;
    transform: scale(0.1) rotate(30deg);
    transform-origin: center bottom;
  }
  50% {
    transform: rotate(-10deg);
  }
  70% {
    transform: rotate(3deg);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.jackInTheBox {
  animation-name: jackInTheBox;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes rollIn {
  from {
    opacity: 0;
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.rollIn {
  animation-name: rollIn;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@keyframes rollOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}
.rollOut {
  animation-name: rollOut;
}
@keyframes zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  50% {
    opacity: 1;
  }
}
.zoomIn {
  animation-name: zoomIn;
}
@keyframes zoomInDown {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInDown {
  animation-name: zoomInDown;
}
@keyframes zoomInLeft {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInLeft {
  animation-name: zoomInLeft;
}
@keyframes zoomInRight {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInRight {
  animation-name: zoomInRight;
}
@keyframes zoomInUp {
  from {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  60% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomInUp {
  animation-name: zoomInUp;
}
@keyframes zoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}
.zoomOut {
  animation-name: zoomOut;
}
@keyframes zoomOutDown {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomOutDown {
  animation-name: zoomOutDown;
}
@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }
  to {
    opacity: 0;
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform-origin: left center;
  }
}
.zoomOutLeft {
  animation-name: zoomOutLeft;
}
@keyframes zoomOutRight {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }
  to {
    opacity: 0;
    transform: scale(0.1) translate3d(2000px, 0, 0);
    transform-origin: right center;
  }
}
.zoomOutRight {
  animation-name: zoomOutRight;
}
@keyframes zoomOutUp {
  40% {
    opacity: 1;
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }
  to {
    opacity: 0;
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform-origin: center bottom;
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}
.zoomOutUp {
  animation-name: zoomOutUp;
}
@keyframes slideInDown {
  from {
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInDown {
  animation-name: slideInDown;
}
@keyframes slideInLeft {
  from {
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInLeft {
  animation-name: slideInLeft;
}
@keyframes slideInRight {
  from {
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInRight {
  animation-name: slideInRight;
}
@keyframes slideInUp {
  from {
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.slideInUp {
  animation-name: slideInUp;
}
@keyframes slideOutDown {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}
.slideOutDown {
  animation-name: slideOutDown;
}
@keyframes slideOutLeft {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(-100%, 0, 0);
  }
}
.slideOutLeft {
  animation-name: slideOutLeft;
}
@keyframes slideOutRight {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
  }
}
.slideOutRight {
  animation-name: slideOutRight;
}
@keyframes slideOutUp {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, -100%, 0);
  }
}
.slideOutUp {
  animation-name: slideOutUp;
}
.withRotation {
  transform-origin: 50% 50%;
  animation: rotation 3.84615s linear 0s infinite normal forwards running;
}
.rounded {
  border-radius: 15px;
}
.rounded.heavy {
  border-radius: 15px 15px 10px 10px;
}
.rounded-t {
  border-radius: 15px 15px 0px 0px;
}
.rounded-t.heavy {
  border-radius: 15px 15px 10px 10px;
}
.rounded-l {
  border-radius: 15px 0px 0px 15px;
}
.rounded-b {
  border-radius: 15px 15px 0px 0px;
}
.rounded-b.heavy {
  border-radius: 15px 15px 10px 10px;
}
.rounded-r {
  border-radius: 0px 15px 15px 0px;
}
.bordered {
  border: 1px solid #ccc;
}
.margin-0 {
  margin: 0px;
}
.margin-xs {
  margin: 2px;
}
.margin-s {
  margin: 4px;
}
.margin-m {
  margin: 8px;
}
.margin-l {
  margin: 16px;
}
.margin-xl {
  margin: 32px;
}
.margin-xxl {
  margin: 64px;
}
.margin-xxxl {
  margin: 128px;
}
.margin-t-0 {
  margin-top: 0px;
}
.margin-t-xs {
  margin-top: 2px;
}
.margin-t-s {
  margin-top: 4px;
}
.margin-t-m {
  margin-top: 8px;
}
.margin-t-l {
  margin-top: 16px;
}
.margin-t-xl {
  margin-top: 32px;
}
.margin-t-xxl {
  margin-top: 64px;
}
.margin-t-xxxl {
  margin-top: 128px;
}
.margin-b-0 {
  margin-bottom: 0px;
}
.margin-b-xs {
  margin-bottom: 2px;
}
.margin-b-s {
  margin-bottom: 4px;
}
.margin-b-m {
  margin-bottom: 8px;
}
.margin-b-l {
  margin-bottom: 16px;
}
.margin-b-xl {
  margin-bottom: 32px;
}
.margin-b-xxl {
  margin-bottom: 64px;
}
.margin-b-xxxl {
  margin-bottom: 128px;
}
.margin-r-0 {
  margin-right: 0px;
}
.margin-r-xs {
  margin-right: 2px;
}
.margin-r-s {
  margin-right: 4px;
}
.margin-r-m {
  margin-right: 8px;
}
.margin-r-l {
  margin-right: 16px;
}
.margin-r-xl {
  margin-right: 32px;
}
.margin-r-xxl {
  margin-right: 64px;
}
.margin-r-xxxl {
  margin-right: 128px;
}
.margin-l-0 {
  margin-left: 0px;
}
.margin-l-xs {
  margin-left: 2px;
}
.margin-l-s {
  margin-left: 4px;
}
.margin-l-m {
  margin-left: 8px;
}
.margin-l-l {
  margin-left: 16px;
}
.margin-l-xl {
  margin-left: 32px;
}
.margin-l-xxl {
  margin-left: 64px;
}
.margin-l-xxxl {
  margin-left: 128px;
}
.margin-x-a {
  margin-left: auto;
  margin-right: auto;
}
.margin-x-0 {
  margin-left: 0px;
  margin-right: 0px;
}
.margin-x-xs {
  margin-left: 2px;
  margin-right: 2px;
}
.margin-x-s {
  margin-left: 4px;
  margin-right: 4px;
}
.margin-x-m {
  margin-left: 8px;
  margin-right: 8px;
}
.margin-x-l {
  margin-left: 16px;
  margin-right: 16px;
}
.margin-x-xl {
  margin-left: 32px;
  margin-right: 32px;
}
.margin-x-xxl {
  margin-left: 64px;
  margin-right: 64px;
}
.margin-x-xxxl {
  margin-left: 128px;
  margin-right: 128px;
}
.margin-y-a {
  margin-top: auto;
  margin-bottom: auto;
}
.margin-y-0 {
  margin-top: 0px;
  margin-bottom: 0px;
}
.margin-y-xs {
  margin-top: 2px;
  margin-bottom: 2px;
}
.margin-y-s {
  margin-top: 4px;
  margin-bottom: 4px;
}
.margin-y-m {
  margin-top: 8px;
  margin-bottom: 8px;
}
.margin-y-l {
  margin-top: 16px;
  margin-bottom: 16px;
}
.margin-y-xl {
  margin-top: 32px;
  margin-bottom: 32px;
}
.margin-y-xxl {
  margin-top: 64px;
  margin-bottom: 64px;
}
.margin-y-xxxl {
  margin-top: 128px;
  margin-bottom: 128px;
}
.padding-0 {
  padding: 0px;
}
.padding-xs {
  padding: 2px;
}
.padding-s {
  padding: 4px;
}
.padding-m {
  padding: 8px;
}
.padding-l {
  padding: 16px;
}
.padding-xl {
  padding: 32px;
}
.padding-xxl {
  padding: 64px;
}
.padding-xxxl {
  padding: 128px;
}
.padding-t-0 {
  padding-top: 0px;
}
.padding-t-xs {
  padding-top: 2px;
}
.padding-t-s {
  padding-top: 4px;
}
.padding-t-m {
  padding-top: 8px;
}
.padding-t-l {
  padding-top: 16px;
}
.padding-t-xl {
  padding-top: 32px;
}
.padding-t-xxl {
  padding-top: 64px;
}
.padding-t-xxxl {
  padding-top: 128px;
}
.padding-b-0 {
  padding-bottom: 0px;
}
.padding-b-xs {
  padding-bottom: 2px;
}
.padding-b-s {
  padding-bottom: 4px;
}
.padding-b-m {
  padding-bottom: 8px;
}
.padding-b-l {
  padding-bottom: 16px;
}
.padding-b-xl {
  padding-bottom: 32px;
}
.padding-b-xxl {
  padding-bottom: 64px;
}
.padding-b-xxxl {
  padding-bottom: 128px;
}
.padding-l-0 {
  padding-left: 0px;
}
.padding-l-xs {
  padding-left: 2px;
}
.padding-l-s {
  padding-left: 4px;
}
.padding-l-m {
  padding-left: 8px;
}
.padding-l-l {
  padding-left: 16px;
}
.padding-l-xl {
  padding-left: 32px;
}
.padding-l-xxl {
  padding-left: 64px;
}
.padding-l-xxxl {
  padding-left: 128px;
}
.padding-r-0 {
  padding-right: 0px;
}
.padding-r-xs {
  padding-right: 2px;
}
.padding-r-s {
  padding-right: 4px;
}
.padding-r-m {
  padding-right: 8px;
}
.padding-r-l {
  padding-right: 16px;
}
.padding-r-xl {
  padding-right: 32px;
}
.padding-r-xxl {
  padding-right: 64px;
}
.padding-r-xxxl {
  padding-right: 128px;
}
.padding-x-0 {
  padding-left: 0px;
  padding-right: 0px;
}
.padding-x-xs {
  padding-left: 2px;
  padding-right: 2px;
}
.padding-x-s {
  padding-left: 4px;
  padding-right: 4px;
}
.padding-x-m {
  padding-left: 8px;
  padding-right: 8px;
}
.padding-x-l {
  padding-left: 16px;
  padding-right: 16px;
}
.padding-x-xl {
  padding-left: 32px;
  padding-right: 32px;
}
.padding-x-xxl {
  padding-left: 64px;
  padding-right: 64px;
}
.padding-x-xxxl {
  padding-left: 128px;
  padding-right: 128px;
}
.padding-y-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}
.padding-y-xs {
  padding-top: 2px;
  padding-bottom: 2px;
}
.padding-y-s {
  padding-top: 4px;
  padding-bottom: 4px;
}
.padding-y-m {
  padding-top: 8px;
  padding-bottom: 8px;
}
.padding-y-l {
  padding-top: 16px;
  padding-bottom: 16px;
}
.padding-y-xl {
  padding-top: 32px;
  padding-bottom: 32px;
}
.padding-y-xxl {
  padding-top: 64px;
  padding-bottom: 64px;
}
.padding-y-xxxl {
  padding-top: 128px;
  padding-bottom: 128px;
}
.killscrollbar {
  scrollbar-width: none;
  /* for Firefox */
}
.killscrollbar::-webkit-scrollbar {
  display: none;
  /* for Chrome, Safari, and Opera */
}
.fade {
  background: #c6bfcc;
  /* Old browsers */
  background: -moz-linear-gradient(top, #9C87AF 1%, #9C87AF 30%, #837193 60%, #837193 95%, #5b5266 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #9C87AF 1%, #9C87AF 30%, #837193 60%, #837193 95%, #5b5266 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #9C87AF 1%, #9C87AF 30%, #837193 60%, #837193 95%, #5b5266 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}
.screen {
  display: none;
  left: 0;
  height: 1px;
  min-height: 100vh;
  position: 'absolute';
  top: 0;
  width: 100%;
  z-index: 0;
}
.screen > div {
  height: initial;
}
.screen > .buttons {
  margin: 16px;
  display: grid;
  gap: 5px;
  grid-auto-flow: row;
  grid-auto-rows: auto;
}
.screen > .buttons .button {
  padding: 16px;
}
.screen .copy.inv {
  color: #ffffff;
}
.screen .copy.rt {
  text-align: right;
}
.screen .copy.stroked-c1 {
  text-shadow: -1px -1px 0 #847293, 1px -1px 0 #847293, -1px 1px 0 #847293, 1px 1px 0 #847293;
}
.screen .copy.stroked-c2 {
  text-shadow: -1px -1px 0 #5b5266, 1px -1px 0 #5b5266, -1px 1px 0 #5b5266, 1px 1px 0 #5b5266;
}
.screen .copy.shadowed-c1 {
  text-shadow: 0 2px 2px #847293;
}
.screen .copy.shadowed-c2 {
  text-shadow: 0 1px 2px #847293;
}
.screen .headroom {
  position: relative;
  width: 100%;
}
.screen .scrollable {
  align-items: center;
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 100vh;
  width: 100%;
}
.screen .ribbon {
  background-color: #5b5266;
  color: #ffffff;
  font-size: 14px;
  padding: 10px;
}
.screen .btn {
  align-items: center;
  background-color: #847293;
  border-radius: 10px;
  color: #ffffff;
  display: inline-flex;
  font-weight: bold;
  height: 30px;
  justify-content: center;
  text-align: center;
  width: 30px;
}
.screen .section {
  margin-top: 8px;
  margin-bottom: 8px;
}
.screen h1,
.screen .h1 {
  color: #2c3e50;
  font-size: 30px;
  font-weight: 800;
  text-align: center;
  width: 100%;
}
.screen h2,
.screen .h2 {
  color: #5b5266;
  font-size: 25px;
  font-weight: 700;
  text-align: center;
  width: 100%;
}
.screen h3,
.screen .h3 {
  display: flex;
  color: #2c3e50;
  font-weight: 600;
  position: relative;
  width: 100%;
}
.screen h3 .copy,
.screen .h3 .copy {
  flex: 1;
}
.screen h3 .copy.right,
.screen .h3 .copy.right {
  text-align: right;
}
.screen h4,
.screen .h4 {
  display: flex;
  color: #2c3e50;
  font-weight: 500;
  position: relative;
  width: 100%;
}
.screen h4 .copy,
.screen .h4 .copy {
  flex: 1;
}
.screen h4 .note,
.screen .h4 .note {
  bottom: 0px;
  color: #847293;
  font-size: 14px;
  font-weight: normal;
  position: absolute;
  right: 0px;
}
.screen .para {
  padding-top: 10px;
  text-align: justify;
}
.screen .dink {
  align-items: center;
  cursor: pointer;
  display: flex;
  height: 50px;
  justify-content: center;
  width: 50px;
}
.screen .dink.open .icon {
  background-image: url('static/img/dot.green.png');
  background-size: contain;
  background-position: center;
  height: 50%;
  width: 50%;
}
.screen .dink.closed .icon {
  background-image: url('static/img/dot.blue.png');
  background-size: contain;
  background-position: center;
  height: 50%;
  width: 50%;
}
.screen .help {
  display: grid;
  align-items: center;
  justify-items: center;
  background-color: #847293;
  border-radius: 15px;
  color: #ffffff;
  cursor: pointer;
  font-size: 16px;
  min-height: 40px;
  min-width: 40px;
}
.screen .controlHeader {
  padding-top: 16px;
  align-items: center;
  display: flex;
  flex-direction: row;
  width: 100%;
}
.screen .controlHeader .tabBar {
  flex: 1;
}
.screen .controlHeader .buttons {
  padding-right: 4px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: auto;
  gap: 3px;
}
.screen .controlHeader .buttons .btn {
  border: 1px solid #5b5266;
}
.screen .tabBar {
  position: relative;
  z-index: 0;
  display: flex;
  width: 100%;
  overflow-x: scroll;
}
.screen .tabBar .tab {
  margin-left: 2px;
  margin-right: 2px;
  align-items: center;
  background-color: #847293;
  border-radius: 10px 10px 0px 0px;
  color: white;
  display: inline-flex;
  font-weight: bold;
  padding: 10px;
  text-align: center;
}
.screen .tabBar .tab .icon {
  display: block;
  width: 30px;
}
.screen .tabBar .tab .label {
  display: none;
}
.screen .tabBar .tab.selected {
  background-color: #5b5266;
  border-top: 1px solid #5b5266;
  border-left: 1px solid #5b5266;
  border-right: 1px solid #5b5266;
  opacity: 1;
}
.screen .tabBar .tab.selected .icon {
  display: none;
}
.screen .tabBar .tab.selected .label {
  display: block;
}
.screen .tabGroup > :first-child {
  margin-top: 0px;
}
.screen .screenActionButtons {
  display: grid;
  gap: 5px;
  grid-auto-flow: row;
  grid-auto-rows: auto;
  overflow: visible;
}
.screen > .pane {
  margin-left: auto;
  margin-right: auto;
  background-color: #eee;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.screen > .pane .h1 {
  padding-bottom: 32px;
}
.screen > .footer {
  align-items: flex-end;
  background-color: #eee;
  display: flex;
  justify-content: flex-end;
  min-height: 120px;
  flex: 1;
  flex-direction: column;
  width: 100%;
}
.screen > .footer .base {
  position: relative;
  height: 40px;
  width: 100%;
  background-color: grey;
}
@media only screen and (min-width: 1440px) and (max-width: 2560px) {
  .screen h3,
  .screen .h3 {
    align-items: center;
    flex-direction: row;
    font-size: 24px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 20px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4,
  .screen .h4 {
    align-items: center;
    flex-direction: row;
    font-size: 20px;
  }
  .screen h4 .button,
  .screen .h4 .button {
    font-size: 16px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4 .dink,
  .screen .h4 .dink {
    margin-right: 15px;
  }
  .screen .headroom {
    min-height: 80px;
  }
  .screen .padded-box {
    padding: 16px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1439px) {
  .screen h3,
  .screen .h3 {
    align-items: center;
    flex-direction: row;
    font-size: 24px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 20px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4,
  .screen .h4 {
    align-items: center;
    flex-direction: row;
    font-size: 20px;
  }
  .screen h4 .button,
  .screen .h4 .button {
    font-size: 16px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4 .dink,
  .screen .h4 .dink {
    margin-right: 11px;
  }
  .screen .headroom {
    min-height: 80px;
  }
  .screen .padded-box {
    padding: 16px;
  }
}
@media only screen and (min-width: 720px) and (max-width: 1023px) {
  .screen h3,
  .screen .h3 {
    align-items: center;
    flex-direction: row;
    font-size: 24px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 20px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4,
  .screen .h4 {
    align-items: center;
    flex-direction: row;
    font-size: 20px;
  }
  .screen h4 .button,
  .screen .h4 .button {
    font-size: 16px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4 .dink,
  .screen .h4 .dink {
    margin-right: 11px;
  }
  .screen .headroom {
    min-height: 80px;
  }
  .screen .padded-box {
    padding: 16px;
  }
}
@media only screen and (min-width: 425px) and (max-width: 719px) {
  .screen h3,
  .screen .h3 {
    align-items: center;
    flex-direction: row;
    font-size: 24px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 20px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4,
  .screen .h4 {
    align-items: center;
    flex-direction: row;
    font-size: 20px;
  }
  .screen h4 .button,
  .screen .h4 .button {
    font-size: 16px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4 .dink,
  .screen .h4 .dink {
    margin-right: 11px;
  }
  .screen .headroom {
    min-height: 60px;
  }
  .screen .padded-box {
    padding: 16px;
  }
}
@media only screen and (min-width: 375px) and (max-width: 424px) {
  .screen h3,
  .screen .h3 {
    align-items: center;
    flex-direction: row;
    font-size: 22px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 18px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4,
  .screen .h4 {
    align-items: center;
    flex-direction: row;
    font-size: 18px;
  }
  .screen h4 .button,
  .screen .h4 .button {
    font-size: 14px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4 .dink,
  .screen .h4 .dink {
    margin-right: 6px;
  }
  .screen .headroom {
    min-height: 60px;
  }
  .screen .padded-box {
    padding: 8px;
  }
}
@media only screen and (min-width: 320px) and (max-width: 374px) {
  .screen h3,
  .screen .h3 {
    align-items: center;
    flex-direction: row;
    font-size: 20px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 16px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4,
  .screen .h4 {
    align-items: center;
    flex-direction: row;
    font-size: 16px;
  }
  .screen h4 .button,
  .screen .h4 .button {
    font-size: 12px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h4 .dink,
  .screen .h4 .dink {
    margin-right: 6px;
  }
  .screen .headroom {
    min-height: 50px;
  }
  .screen .padded-box {
    padding: 8px;
  }
}
@media only screen and (max-width: 319px) {
  .screen h3,
  .screen .h3 {
    flex-direction: column;
    font-size: 18px;
  }
  .screen h3 .button,
  .screen .h3 .button {
    font-size: 14px;
    min-width: 40px;
    min-height: 40px;
  }
  .screen h3 .note,
  .screen .h3 .note {
    left: 0;
    right: initial;
  }
  .screen .headroom {
    min-height: 40px;
  }
  .screen .padded-box {
    padding: 4px;
  }
}
.sideScroller {
  overflow-x: scroll;
  scrollbar-width: none;
  /* Optional: show position indicator in red */
}
.sideScroller::-webkit-scrollbar {
  display: none;
  width: 0px;
  /* Remove scrollbar space */
  background: transparent;
  /* Optional: just make scrollbar invisible */
}
.sideScroller::-webkit-scrollbar-thumb {
  display: none;
  background: #ff0000;
}
.btn {
  cursor: pointer;
}
.button {
  align-items: center;
  background-repeat: no-repeat;
  border-radius: 30px;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#c6bfcc+1,a791ba+50,837193+51,837193+100 */
  background: #c6bfcc;
  /* Old browsers */
  background: -moz-linear-gradient(top, #9C87AF 1%, #9C87AF 30%, #837193 60%, #837193 95%, #5b5266 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #9C87AF 1%, #9C87AF 30%, #837193 60%, #837193 95%, #5b5266 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #9C87AF 1%, #9C87AF 30%, #837193 60%, #837193 95%, #5b5266 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#c6bfcc', endColorstr='#837193', GradientType=0);
  /* IE6-9 */
  font-weight: 700;
  justify-content: center;
  text-align: center;
  text-shadow: 2px 2px 4px #847293;
  padding-left: 8px;
  padding-right: 8px;
}
.button.change {
  background-color: #847293;
  background-image: url('/static/img/change.icon.small.white.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: 66%;
  border: 1px solid;
}
.button.screenAction {
  width: 100%;
  height: 70px;
}
.button.focus,
.button:focus-within {
  box-shadow: 0 0 10px 3px #5b5266;
}
.button.boring {
  background: #c6bfcc;
  /* Old browsers */
  background: -moz-linear-gradient(top, #ccc 1%, #aaa 30%, #999 60%, #888 95%, #777 100%);
  /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #ccc 1%, #aaa 30%, #999 60%, #888 95%, #777 100%);
  /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #ccc 1%, #aaa 30%, #999 60%, #888 95%, #777 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#aaa', endColorstr='#888', GradientType=0);
  /* IE6-9 */
}
.button:hover,
.button:focus-within,
.button:focus {
  outline: none;
}
.button span {
  margin: 8px;
  color: #ffffff;
  white-space: nowrap;
}
@media only screen and (min-width: 1440px) and (max-width: 2560px) {
  .button {
    border-radius: 15px;
    height: 40px;
    font-size: 30px;
  }
  .button.tall {
    height: 70px;
    border-radius: 30px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1439px) {
  .button {
    border-radius: 15px;
    height: 40px;
    font-size: 30px;
  }
  .button.tall {
    height: 70px;
    border-radius: 30px;
  }
}
@media only screen and (min-width: 720px) and (max-width: 1023px) {
  .button {
    border-radius: 15px;
    height: 40px;
    font-size: 28px;
  }
  .button.tall {
    height: 70px;
    border-radius: 30px;
  }
}
@media only screen and (min-width: 425px) and (max-width: 719px) {
  .button {
    border-radius: 15px;
    height: 40px;
    font-size: 26px;
  }
  .button.tall {
    height: 70px;
    border-radius: 30px;
  }
}
@media only screen and (min-width: 375px) and (max-width: 424px) {
  .button {
    border-radius: 15px;
    height: 40px;
    font-size: 24px;
  }
  .button.tall {
    height: 70px;
    border-radius: 30px;
  }
}
@media only screen and (min-width: 320px) and (max-width: 374px) {
  .button {
    border-radius: 10px;
    height: 30px;
    font-size: 22px;
  }
  .button.tall {
    height: 60px;
    border-radius: 24px;
  }
}
@media only screen and (max-width: 319px) {
  .button {
    border-radius: 10px;
    height: 28px;
    font-size: 22px;
  }
  .button.tall {
    height: 60px;
    border-radius: 20px;
  }
}
.check.IO {
  display: grid;
  grid-template: 'a' auto 'b' auto 'c' auto / auto;
  row-gap: 5px;
  align-items: center;
  justify-items: center;
  touch-action: none;
}
.check.IO:focus {
  outline: none;
}
.check.IO.horizontal {
  grid-template: 'a b' auto 'c c' auto / min-content auto;
  row-gap: unset;
  column-gap: 5px;
}
.check.IO.horizontal .label {
  justify-self: left;
}
.check.IO input {
  position: absolute;
  opacity: 0;
}
.check.IO .field {
  grid-area: a;
  align-items: center;
  background-color: #ffc;
  border: 1px solid DarkSlateGrey;
  cursor: pointer;
  display: table;
  height: 100%;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.check.IO .field:hover,
.check.IO .field:focus-within {
  box-shadow: 0 0 10px 3px #847293;
  outline: none;
}
.check.IO .field .copy {
  color: green;
  display: table-cell;
  font-weight: bold;
  outline: 0px solid transparent;
  text-align: center;
  vertical-align: middle;
}
.check.IO .label {
  grid-area: b;
  display: none;
}
.check.IO .error {
  grid-area: c;
}
.clickable:hover {
  cursor: pointer;
}
.days.IO:focus {
  outline: none;
}
.days.IO > .field {
  border: 0px;
  display: grid;
  column-gap: 5px;
  row-gap: 5px;
  grid-template-columns: repeat(auto-fit, minmax(30px, 1fr));
}
.IOPanel .IO.text .field.textarea {
  background-image: url(/static/img/dots.bubble.png);
}
.IOPanel .IO.text .field {
  padding-bottom: 8px;
  padding-top: 2px;
  background-color: #ffc;
  background-image: url(/static/img/dots.png);
  background-repeat: repeat;
  border-radius: 15px;
  color: DarkSlateGrey;
  text-align: center;
}
.IOPanel .IO.check .field {
  background-color: #ffc;
  background-image: url(/static/img/dots.png);
  border-radius: 15px;
  color: DarkSlateGrey;
  height: 60px;
  width: 60px;
}
.IOPanel .logo {
  margin-left: auto;
  margin-right: auto;
  border-radius: 10px 10px 10px 10px;
  display: block;
  height: auto;
  left: 0px;
  right: 0px;
  width: 100%;
}
.IOPanel .message {
  margin-left: auto;
  margin-right: auto;
  color: DarkSlateGrey;
  display: block;
  font-weight: 500;
  margin-top: 20px;
  text-align: center;
}
.IOPanel .help.btn {
  border-radius: 15px;
  height: 40px;
  width: 40px;
}
.IOPanel .checkboxAndHelp {
  margin-top: 8px;
  align-items: center;
  display: flex;
  flex-direction: row;
  width: 100%;
}
.IOPanel .checkboxAndHelp .check.IO {
  flex-direction: row;
  flex: 1;
}
.IOPanel .checkboxAndHelp .label {
  padding-left: 8px;
  font-weight: bold;
}
@media only screen and (min-width: 1440px) and (max-width: 2560px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 28px;
  }
  .IOPanel .message {
    font-size: 30px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1439px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 26px;
  }
  .IOPanel .message {
    font-size: 28px;
  }
}
@media only screen and (min-width: 720px) and (max-width: 1023px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 24px;
  }
  .IOPanel .message {
    font-size: 26px;
  }
}
@media only screen and (min-width: 425px) and (max-width: 719px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 22px;
  }
  .IOPanel .message {
    font-size: 24px;
  }
}
@media only screen and (min-width: 375px) and (max-width: 424px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 20px;
  }
  .IOPanel .message {
    font-size: 19px;
  }
}
@media only screen and (min-width: 320px) and (max-width: 374px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 16px;
  }
  .IOPanel .message {
    font-size: 17px;
  }
}
@media only screen and (max-width: 319px) {
  .IOPanel .IO.text .field,
  .IOPanel .IO.check .field {
    font-size: 14px;
  }
  .IOPanel .message {
    font-size: 15px;
  }
}
.image.editor {
  position: relative;
  z-index: 0;
  width: 100%;
}
.image.editor:focus-within {
  box-shadow: 0 0 10px 3px #847293;
}
.image.editor .error {
  position: absolute;
  bottom: 0px;
  display: none;
  padding: 10px;
  color: red;
}
.image.editor .preview {
  background-image: url(/static/img/upload.photo.png);
  background-origin: content-box;
  background-position: center;
  background-size: cover;
  content: url('/static/img/transparent.pixel.png');
  position: relative;
  z-index: 1;
  height: auto;
  width: 100%;
}
.image.editor .preview.loading {
  background-size: 50%;
}
.image.editor .preview:before {
  content: '';
  display: block;
  padding-top: 100%;
}
.image.editor .bg {
  background-image: url(/static/img/checkerboard.png);
  background-repeat: repeat;
  height: 100%;
  left: 0px;
  opacity: 0.2;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
}
.image.editor .uploader {
  cursor: pointer;
  height: 100%;
  left: 0px;
  opacity: 0;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 2;
}
.imagesIO .thumbs {
  padding: 16px;
  overflow-x: scroll;
  scrollbar-width: none;
  /* Optional: show position indicator in red */
  display: flex;
  justify-content: center;
  z-index: 0;
  width: 100%;
}
.imagesIO .thumbs::-webkit-scrollbar {
  display: none;
  width: 0px;
  /* Remove scrollbar space */
  background: transparent;
  /* Optional: just make scrollbar invisible */
}
.imagesIO .thumbs::-webkit-scrollbar-thumb {
  display: none;
  background: #ff0000;
}
.imagesIO .thumbs .list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: auto;
  gap: 10px;
  width: auto;
}
.imagesIO .thumbs .list .imageThumbnail.OO {
  background-color: white;
  background-origin: content-box;
  background-position: center;
  background-size: cover;
  border-radius: 5px;
  cursor: pointer;
  height: 60px;
  width: 60px;
  border: 2px solid #fff0;
}
.imagesIO .thumbs .list .imageThumbnail.OO.selected {
  border: 2px solid green;
  box-shadow: 0 0 10px 0 yellow;
}
.imagesIO .editGroup {
  position: relative;
}
.imagesIO .editGroup .imageFwdBtn,
.imagesIO .editGroup .imageBwdBtn,
.imagesIO .editGroup .imageAddBtn,
.imagesIO .editGroup .imageDelBtn {
  align-items: center;
  box-shadow: 0 0 10px 0 #fff;
  cursor: pointer;
  display: flex;
  height: 50px;
  position: absolute;
  width: 50px;
  z-index: 100;
}
.imagesIO .editGroup .imageFwdBtn span,
.imagesIO .editGroup .imageBwdBtn span,
.imagesIO .editGroup .imageAddBtn span,
.imagesIO .editGroup .imageDelBtn span {
  color: #ffffff;
  font-size: 20px;
  text-align: center;
  width: 100%;
}
.imagesIO .editGroup .imageFwdBtn {
  background-color: blue;
  border-radius: 10px 0px 0 10px;
  border: 2px solid darkblue;
  bottom: 50%;
  right: 0px;
}
.imagesIO .editGroup .imageFwdBtn span {
  transform: rotate(-90deg);
}
.imagesIO .editGroup .imageBwdBtn {
  background-color: blue;
  border-radius: 0 10px 10px 0;
  border: 2px solid darkblue;
  bottom: 50%;
  left: 0px;
}
.imagesIO .editGroup .imageBwdBtn span {
  transform: rotate(90deg);
}
.imagesIO .editGroup .imageAddBtn {
  background-color: green;
  font-weight: bold;
  font-size: 1.1em;
  border-radius: 10px 10px 0 0;
  border: 2px solid darkgreen;
  bottom: 0px;
  right: 20px;
}
.imagesIO .editGroup .imageDelBtn {
  background-color: red;
  border-radius: 10px 10px 0 0;
  border: 2px solid darkred;
  bottom: 0px;
  left: 20px;
}
.imagesOO {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
}
.imagesOO .thumbs {
  padding: 16px;
  overflow-x: scroll;
  scrollbar-width: none;
  /* Optional: show position indicator in red */
  display: flex;
  justify-content: center;
  width: 100%;
  z-index: 0;
}
.imagesOO .thumbs::-webkit-scrollbar {
  display: none;
  width: 0px;
  /* Remove scrollbar space */
  background: transparent;
  /* Optional: just make scrollbar invisible */
}
.imagesOO .thumbs::-webkit-scrollbar-thumb {
  display: none;
  background: #ff0000;
}
.imagesOO .thumbs .list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: auto;
  gap: 10px;
  width: auto;
}
.imagesOO .thumbs .list .imageThumbnail.OO {
  background-color: white;
  background-origin: content-box;
  background-position: center;
  background-size: cover;
  border-radius: 5px;
  border: 2px solid #ffff;
  cursor: pointer;
  height: 60px;
  width: 60px;
}
.imagesOO .thumbs .list .imageThumbnail.OO.selected {
  border: 2px solid green;
  box-shadow: 0 0 10px 0 yellow;
}
.moveOpts.IO {
  align-items: center;
  border: 0px;
  display: flex;
  width: 100%;
}
.search.IO > .pane {
  display: flex;
  position: relative;
  width: auto;
  z-index: 0;
}
.search.IO > .pane .icon {
  width: 40px;
  border: 1px solid;
  background-image: url('/static/img/search.clear.png');
  background-size: 75%;
  background-position: center;
  border-color: #3c3841;
  display: inline;
  z-index: 10;
}
.search.IO > .pane .icon.submit,
.search.IO > .pane .icon.clear {
  border-right: 0px;
}
.search.IO > .pane .icon.intent {
  background-color: #5b5266;
}
.search.IO > .pane .intent.icon {
  border-radius: 0px 10px 10px 0px;
}
.search.IO > .pane .submit.icon {
  align-items: center;
  background-color: #5b5266;
  background-image: url('/static/img/check.white.png');
  background-size: 75%;
  display: none;
  justify-content: center;
}
.search.IO > .pane .submit.icon:hover {
  cursor: pointer;
}
.search.IO > .pane .clear.icon {
  align-items: center;
  background-color: black;
  background-image: url('/static/img/ex.white.png');
  background-size: 75%;
  display: none;
  justify-content: center;
}
.search.IO > .pane .clear.icon:hover {
  cursor: pointer;
}
.search.IO > .pane .value.text.IO {
  position: relative;
  flex: 1;
  font-size: 30px;
}
.search.IO > .pane .value.text.IO .field {
  border-radius: 10px 0px 0px 10px;
  border-color: #3c3841;
  border-right: 0px;
}
.search.IO > .pane .value.text.IO .field .copy {
  margin-left: 8px;
  margin-right: 8px;
  text-align: left;
  color: #2c3e50;
}
.search.IO > .pane .value.text.IO .field .copy.placeholder {
  color: #777777;
  font-weight: bold;
}
.search.IO > .pane .value.text.IO .error {
  align-items: center;
  background-color: red;
  border-radius: 10px 0px 0px 10px;
  color: #ffffff;
  display: flex;
  font-size: 20px;
  height: 100%;
  position: absolute;
  right: 0px;
}
.text.IO {
  display: flex;
  flex-direction: column;
}
.text.IO:focus {
  outline: none;
}
.text.IO .field {
  align-items: center;
  background-color: #ffc;
  border: 1px solid DarkSlateGrey;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 10px;
  padding-right: 10px;
  position: relative;
}
.text.IO .field:hover,
.text.IO .field:focus-within {
  box-shadow: 0 0 10px 3px #847293;
}
.text.IO .field.with-icon {
  display: grid;
  grid-template-columns: 1fr 9fr;
  column-gap: 10px;
}
.text.IO .field .icon {
  height: auto;
  width: 100%;
}
.text.IO .field .placeholder {
  width: 100%;
  text-align: left;
  font-size: 12px;
}
.text.IO .field .placeholder.hide {
  color: grey;
}
.text.IO .field .copy {
  -webkit-user-select: text;
  padding: 0px;
  bottom: 0px;
  min-height: 1em;
  outline: 0px solid transparent;
  position: relative;
  user-select: text;
  white-space: pre-wrap;
  width: 100%;
}
@media only screen and (min-width: 1440px) and (max-width: 2560px) {
  .text.IO {
    font-size: 30px;
  }
}
@media only screen and (min-width: 1024px) and (max-width: 1439px) {
  .text.IO {
    font-size: 28px;
  }
}
@media only screen and (min-width: 720px) and (max-width: 1023px) {
  .text.IO {
    font-size: 26px;
  }
}
@media only screen and (min-width: 425px) and (max-width: 719px) {
  .text.IO {
    font-size: 24px;
  }
}
@media only screen and (min-width: 375px) and (max-width: 424px) {
  .text.IO {
    font-size: 22px;
  }
}
@media only screen and (min-width: 320px) and (max-width: 374px) {
  .text.IO {
    font-size: 20px;
  }
}
@media only screen and (max-width: 319px) {
  .text.IO {
    font-size: 18px;
  }
}
input {
  font: unset;
  border-width: 0px;
  border-top-width: 0px;
  border-left-width: 0px;
  border-right-width: 0px;
  border-bottom-width: 0px;
  border-style: unset;
  border-color: unset;
  border-image: unset;
  background-color: transparent;
  background-image: none;
  color: unset;
  font-family: unset;
}
/* Chrome, Safari, Edge, Opera */
input:-webkit-outer-spin-button,
input:-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
/* Hack to prevent background color */
input:-webkit-autofill,
input:-webkit-autofill:focus {
  transition: background-color 600000s 0s, color 600000s 0s;
}
/* Firefox */
input[type='number'] {
  -moz-appearance: textfield;
}
textarea {
  color: unset;
  cursor: text;
  background-color: unset;
  resize: none;
  margin: 15px;
  max-height: 50vh;
  font: unset;
  border-width: unset;
  border-style: unset;
  border-color: unset;
  border-image: unset;
  padding: unset;
}
.textSearchIO.search.IO .pane {
  max-width: 100%;
}
.timeWindow.IO {
  display: grid;
  grid-template: 'a b c' auto / 60px 120px 60px;
  column-gap: 5px;
}
.timeWindow.IO .desc {
  align-items: center;
  border-radius: 10px;
  border: 2px solid #5b5266;
  color: #2c3e50;
  display: flex;
  justify-content: center;
  text-align: center;
}
.timeWindow.IO .moreButton,
.timeWindow.IO .lessButton {
  align-items: center;
  background-color: #847293;
  border-radius: 10px;
  border: 2px solid #5b5266;
  color: white;
  display: flex;
  justify-content: center;
  height: 60px;
  width: 60px;
}
.timeWindows.IO {
  align-items: center;
  border: 0px;
  display: flex;
  justify-content: center;
}
.timeWindows.IO .check.IO {
  margin-left: 2px;
  margin-right: 2px;
}
.timeWindows.IO .check.IO .field {
  background-image: initial;
  height: 60px;
  width: 60px;
}
.timeWindows.IO .check.IO .field .copy {
  color: #ffffff;
  font-size: 16px;
  text-align: center;
}
.timeWindows.IO .check.IO .label {
  color: #5b5266;
  font-size: 12px;
}
.timeWindows.IO .check.IO.checked .field {
  background-color: #847293;
}
.app {
  background-color: #eee;
}
.app .screen {
  min-height: 100%;
  display: none;
  flex-direction: column;
  color: #2c3e50;
}
.app .screen .pane {
  flex: 1;
  align-items: center;
  justify-content: center;
}
.app .screen .badge {
  padding: 32px;
  border-radius: 15px;
  background-color: #847293;
  color: #ffffff;
}
.app .screen .badge.heavy {
  border-radius: 15px 15px 10px 10px;
}
.app .screen > .title {
  padding-top: 16px;
  padding-left: 16px;
  padding-right: 16px;
  font-size: 1.8em;
  font-weight: bold;
}
