html,
body {
    height: 100%;
}

body {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: #fff;
}

.grid-background {
    background-image: linear-gradient(90deg,#efefef 1px,transparent 0),linear-gradient(#efefef 1px,transparent 0);
    background-size: 30px 30px;
    position: absolute;
    bottom: -46rem;
    transform: skewY(25deg) skewX(-40.3deg) rotate(6deg);
    transform-origin: center center;
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    border-radius: 0 0 100vw 0;
    z-index: -40;
    height: 150rem;
    width: 70%;
    top: -73rem;
    right: -30%;
}
.alert {
    border-left: none;
    border-top: none;
    border-bottom: none;
    border-right-width: 8px;
    border-radius: 0;
}
.form {
    width: 100%;
    max-width: 630px;
    padding: 15px;
    margin: auto;
    z-index: 10;
}
.form .form-control {
    position: relative;
    box-sizing: border-box;
    height: auto;
    padding: 10px;
    font-size: 16px;
}
.form .form-control:focus {
    z-index: 2;
}

.btn svg {
    width: 1em;
    height: 1em;
    vertical-align: middle;
    margin-top: -0.2em;
}

.custom-emoji .custom-control-label {
    font-size: 3rem;
    cursor: pointer;
    display: flex;
    border-radius: 50%;
    opacity: 0.6;
    filter: grayscale(0.6);
    transition: all 0.2s;
}
.custom-emoji .custom-control-label::before, .custom-emoji .custom-control-label::after {
    display: none;
}
.custom-emoji .custom-control-input:checked ~ .custom-control-label {
    opacity: 1;
    transform: scale(1.2);
    filter: grayscale(0);
}
.custom-emoji .custom-control-input:focus ~ .custom-control-label {
    box-shadow: 0 0 10px #236daf;
}
.custom-emoji svg {
    width: 64px;
    height: 64px;
}
