.hidden {
    display: none;
}

.online {
    color: #3ba55d;
}

.idle {
    color: #faa81a;
}

.dnd {
    color: #ed4245;
}

.offline {
    color: #80848e;
}

img.emoji {
    height: 1em;
    width: 1em;
    margin: 0 0.05em 0 0.1em;
    vertical-align: -0.1em;
    display: inline;
}

.sub {
    color: #ccc;
    margin: 6px 0 0;
    font-size: 0.95em;
}

hr {
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    margin: 24px 0;
}

.secrethyperlink {
    color: #ffffff;
    font-size: 0.8em;
    text-decoration: none;
    margin-left: 8px;
}

.secrethyperlink:hover {
    text-decoration: underline;
}

.welcome {
    cursor: pointer;
}

@keyframes shake {
    0% { transform: translate(1px, 1px) rotate(0deg); }
    10% { transform: translate(-1px, -2px) rotate(-1deg); }
    20% { transform: translate(-3px, 0px) rotate(1deg); }
    30% { transform: translate(3px, 2px) rotate(0deg); }
    40% { transform: translate(1px, -1px) rotate(1deg); }
    50% { transform: translate(-1px, 2px) rotate(-1deg); }
    60% { transform: translate(-3px, 1px) rotate(0deg); }
    70% { transform: translate(3px, 1px) rotate(-1deg); }
    80% { transform: translate(-1px, -1px) rotate(1deg); }
    90% { transform: translate(1px, 2px) rotate(0deg); }
    100% { transform: translate(1px, -2px) rotate(-1deg); }
}   
.shake {
    animation: shake infinite 0.5s alternate;
    animation-iteration-count: 1;
}

@keyframes spinner {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.spinner {
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-left-color: #ffffff;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: spinner 1s linear infinite;
    display: inline-block;
    vertical-align: middle;
}

blockquote {
    border-left: 4px solid rgba(255, 255, 255, 0.12);
    margin: 16px 0;
    padding-left: 16px;
    color: #ccc;
}