.floating-field {
    position: relative;
    width: min(100%, 24rem);
    margin-block: 1rem;
}

.floating-field input {
    box-sizing: border-box;
    width: 100%;
    padding: 1rem 0.75rem;
    font: inherit;
}

.floating-field label {
    position: absolute;
    top: 50%;
    left: 0.75rem;
    padding-inline: 0.25rem;
    color: #555;
    background-color: white;
    pointer-events: none;
    transform: translateY(-50%);
    transition:
        top 150ms ease,
        font-size 150ms ease,
        color 150ms ease;
}

.floating-field input:focus + label,
.floating-field input:not(:placeholder-shown) + label {
    top: 0;
    font-size: 0.75rem;
    color: #2457d6;
}