.search-icon {
    width: 2.3rem;
}

.search-icon-container {
    position: relative;
    flex-shrink: 0;
}

/* gives a wider hit area for the 3 people that will notice the animation : ) */
.search-icon-container::before {
    content: '';
    position: absolute;
    inset: -1rem;
}

.search-icon-container:hover > .search-icon {
    animation: searchIconHover 2.9s forwards;
}

@keyframes searchIconHover {
    0%, 39% { translate: 0 0; }
    20% { scale: 1.3; }
    40% { scale: 1; }
    50% { translate: -30% 30%; }
    70% { translate: 30% -30%; }
    90% { translate: -30% -30%; }
    100% { translate: 0 0; }
}

.search {
    transition: border-color .2s;
    position: relative;
}

.search:hover {
    border-color: var(--color-text-subdue);
}

.search:focus-within {
    border-color: var(--color-primary);
}

.search-input {
    border: 0;
    background: none;
    width: 100%;
    height: 6rem;
    font: inherit;
    outline: none;
    color: var(--color-text-highlight);
}

.search-input::placeholder {
    color: var(--color-text-base-muted);
    opacity: 1;
}

.search-bangs { display: none; }

.search-bang {
    border-radius: calc(var(--border-radius) * 2);
    background: var(--color-widget-background-highlight);
    padding: 0.3rem 1rem;
    flex-shrink: 0;
    font-size: var(--font-size-h5);
    animation: searchBangsEntrance .3s cubic-bezier(0.25, 1, 0.5, 1) backwards;
}

@keyframes searchBangsEntrance {
    0% {
        opacity: 0;
        transform: translateX(-10px);
    }
}

.search-bang:empty {
    display: none;
}
