.is--hidden {
    display: none !important;
}

.spacing--top {
    margin-top: 2em;
}

.align--center {
    text-align: center;
}

.align--right {
    text-align: right;
}

.align--block {
    text-align: justify;
}

.text--tiny {
    font-size: 12px;
    filter: brightness(85%);
}

.text--small {
    font-size: 0.9em;
}

.text--ssmedium {
    font-size: 1em;
}

.text--smedium {
    font-size: 1.5em;
}

.text--medium {
    font-size: 2em;
    line-height: 1em;
}

.text--large {
    font-size: 3em;
    line-height: 1.3em;
}

.text--uppercase {
    text-transform: uppercase;
    font-weight: normal;
}

em {
  font-style: initial;
}

hr.spacing {
    border: 0 none;
    padding: 4px 0;
}

hr.spacing--small {
    border: 0 none;
    padding: 5px 0;
    margin: 0;
}

small {
    text-transform: uppercase;
    font-size: 10px;
    filter: brightness(85%);
}

/* use margin for cards, as transform would interfere with other card transform props */
.card-shake {
    animation: card-shake linear 0.1s 3 forwards;
}
@keyframes card-shake {
    0% { margin-left: 0; }
    33% { margin-left: 8px; }
    66% { margin-left: -12px; }
    100% { margin-left: 4px; }
}

.card-heavy-shake {
    animation: card-heavy-shake 0.3s cubic-bezier(.2,.1,.2,.97) both;
}
@keyframes card-heavy-shake {
    10%, 90% {
        margin-left: -8px;
    }

    20%, 80% {
        margin-left: 16px;
    }

    30%, 50%, 70% {
        margin-left: -30px;
    }

    40%, 60% {
        margin-left: 30px;
    }
}
  
.heavy-shake {
  animation: heavy-shake 0.3s cubic-bezier(.36,.07,.19,.97) both;
}

@keyframes heavy-shake {
  10%, 90% {
    transform: translateX(-5px);
  }
  
  20%, 80% {
    transform: translateX(10px);
  }

  30%, 50%, 70% {
    transform: translateX(-20px);    
  }

  40%, 60% {
    transform: translateX(20px);
  }
}

