.OwO {
    position: relative;
    user-select: none;

    &:hover {
        .OwO-logo {
            color: #444;
        }
    }

    &.OwO-open {
        .OwO-logo {
            border-radius: 4px 4px 0 0;
            border-bottom: none;
            color: #444;
        }
        .OwO-body {
            display: block;
        }
    }
    &.OwO-up {
        .OwO-body {
            top: inherit;
            bottom: 21px;
            border-radius: 4px 4px 4px 0;

            .OwO-bar .OwO-packages li:nth-child(1) {
                border-radius: 0;
            }
        }

        &.OwO-open .OwO-logo {
            border: 1px solid #ddd;
            border-radius: 0 0 4px 4px;
            border-top: none;
        }
    }

    .OwO-logo {
        position: relative;
        display: inline-block;
        color: #888;
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 4px;
        font-size: 13px;
        padding: 2px 5px;
        cursor: pointer;
        height: 22px;
        box-sizing: border-box;
        z-index: 2;
        line-height: 16px;

        &:hover {
            span {
                display: inline-block;
                animation: my-face 5s infinite ease-in-out;
            }
        }
    }

    .OwO-body {
        display: none;
        position: absolute;
        width: 400px;
        background: #fff;
        border: 1px solid #ddd;
        z-index: 1;
        top: 21px;
        border-radius: 0 4px 4px 4px;

        .OwO-items {
            user-select: none;
            display: none;
            padding: 10px;
            margin: 0;
            overflow: scroll;
            font-size: 0;

            .OwO-item {
                list-style-type: none;
                background: #f7f7f7;
                padding: 5px 10px;
                border-radius: 5px;
                display: inline-block;
                font-size: 12px;
                line-height: 14px;
                margin: 0 10px 12px 0;
                cursor: pointer;
                transition: .3s;

                &:hover {
                    background: #eee;
                    box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
                    animation: my-face 5s infinite ease-in-out;
                }
            }
        }

        .OwO-items-emoji {
            .OwO-item {
                font-size: 20px;
                line-height: 19px;
            }
        }

        .OwO-items-image {
            .OwO-item {
                max-width: calc(25% - 10px);
                box-sizing: border-box;

                img {
                    max-width: 100%;
                }
            }
        }

        .OwO-items-show {
            display: block;
        }

        .OwO-bar {
            width: 100%;
            height: 30px;
            border-top: 1px solid #ddd;
            background: #fff;
            border-radius: 0 0 4px 4px;
            color: #444;

            .OwO-packages {
                margin: 0;
                padding: 0;
                font-size: 0;

                li {
                    list-style-type: none;
                    display: inline-block;
                    line-height: 30px;
                    font-size: 14px;
                    padding: 0 10px;
                    cursor: pointer;
                    margin-right: 3px;

                    &:nth-child(1) {
                        border-radius: 0 0 0 3px;
                    }

                    &:hover {
                        background: #eee;
                    }
                }

                .OwO-package-active {
                    background: #eee;
                    transition: .3s;
                }
            }
        }
    }
}

@keyframes my-face {
    2% {
        transform: translate(0, 1.5px) rotate(1.5deg);
    }
    4% {
        transform: translate(0, -1.5px) rotate(-0.5deg);
    }
    6% {
        transform: translate(0, 1.5px) rotate(-1.5deg);
    }
    8% {
        transform: translate(0, -1.5px) rotate(-1.5deg);
    }
    10% {
        transform: translate(0, 2.5px) rotate(1.5deg);
    }
    12% {
        transform: translate(0, -0.5px) rotate(1.5deg);
    }
    14% {
        transform: translate(0, -1.5px) rotate(1.5deg);
    }
    16% {
        transform: translate(0, -0.5px) rotate(-1.5deg);
    }
    18% {
        transform: translate(0, 0.5px) rotate(-1.5deg);
    }
    20% {
        transform: translate(0, -1.5px) rotate(2.5deg);
    }
    22% {
        transform: translate(0, 0.5px) rotate(-1.5deg);
    }
    24% {
        transform: translate(0, 1.5px) rotate(1.5deg);
    }
    26% {
        transform: translate(0, 0.5px) rotate(0.5deg);
    }
    28% {
        transform: translate(0, 0.5px) rotate(1.5deg);
    }
    30% {
        transform: translate(0, -0.5px) rotate(2.5deg);
    }
    32% {
        transform: translate(0, 1.5px) rotate(-0.5deg);
    }
    34% {
        transform: translate(0, 1.5px) rotate(-0.5deg);
    }
    36% {
        transform: translate(0, -1.5px) rotate(2.5deg);
    }
    38% {
        transform: translate(0, 1.5px) rotate(-1.5deg);
    }
    40% {
        transform: translate(0, -0.5px) rotate(2.5deg);
    }
    42% {
        transform: translate(0, 2.5px) rotate(-1.5deg);
    }
    44% {
        transform: translate(0, 1.5px) rotate(0.5deg);
    }
    46% {
        transform: translate(0, -1.5px) rotate(2.5deg);
    }
    48% {
        transform: translate(0, -0.5px) rotate(0.5deg);
    }
    50% {
        transform: translate(0, 0.5px) rotate(0.5deg);
    }
    52% {
        transform: translate(0, 2.5px) rotate(2.5deg);
    }
    54% {
        transform: translate(0, -1.5px) rotate(1.5deg);
    }
    56% {
        transform: translate(0, 2.5px) rotate(2.5deg);
    }
    58% {
        transform: translate(0, 0.5px) rotate(2.5deg);
    }
    60% {
        transform: translate(0, 2.5px) rotate(2.5deg);
    }
    62% {
        transform: translate(0, -0.5px) rotate(2.5deg);
    }
    64% {
        transform: translate(0, -0.5px) rotate(1.5deg);
    }
    66% {
        transform: translate(0, 1.5px) rotate(-0.5deg);
    }
    68% {
        transform: translate(0, -1.5px) rotate(-0.5deg);
    }
    70% {
        transform: translate(0, 1.5px) rotate(0.5deg);
    }
    72% {
        transform: translate(0, 2.5px) rotate(1.5deg);
    }
    74% {
        transform: translate(0, -0.5px) rotate(0.5deg);
    }
    76% {
        transform: translate(0, -0.5px) rotate(2.5deg);
    }
    78% {
        transform: translate(0, -0.5px) rotate(1.5deg);
    }
    80% {
        transform: translate(0, 1.5px) rotate(1.5deg);
    }
    82% {
        transform: translate(0, -0.5px) rotate(0.5deg);
    }
    84% {
        transform: translate(0, 1.5px) rotate(2.5deg);
    }
    86% {
        transform: translate(0, -1.5px) rotate(-1.5deg);
    }
    88% {
        transform: translate(0, -0.5px) rotate(2.5deg);
    }
    90% {
        transform: translate(0, 2.5px) rotate(-0.5deg);
    }
    92% {
        transform: translate(0, 0.5px) rotate(-0.5deg);
    }
    94% {
        transform: translate(0, 2.5px) rotate(0.5deg);
    }
    96% {
        transform: translate(0, -0.5px) rotate(1.5deg);
    }
    98% {
        transform: translate(0, -1.5px) rotate(-0.5deg);
    }
    0%, 100% {
        transform: translate(0, 0) rotate(0deg);
    }
}