:root {
    --form-width: 55%;
    --banner-font-size: calc(2vh + 2vw);
    --form-header-footer-height: 35%;
}

@font-face {
    font-family: 'Norse-Bold';
    src: url('../fonts/Norse-Bold.woff2') format('woff2'),
        url('../fonts/Norse-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter Variable';
    src: url('../fonts/InterVariable.woff2') format('woff2'),
        url('../fonts/InterVariable.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Manrope';
    src: url('../fonts/Manrope-Regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

.container {
    display: flex;
    flex-flow: vertical nowrap;
    height: 100vh;
    width: 100%;
    margin: 0;
}

.background-side {
    width: calc(100% - var(--form-width));
    height: 100vh;
    background-image: url(../images/tennis_poster_background.jpg);
    background-size: 100% 100%;
    position: relative;
}

.form-side {
    width: var(--form-width);
    display: flex;
    flex-flow: column nowrap;
}

.attribution,
.attribution > a {
    color: white;
}

.attribution {
    position: absolute;
    bottom: .5%;
    right: 2%;
    font-size: .65rem;
    text-align: right;
}

.banner {
    font-family: "Norse-Bold";
    font-size: var(--banner-font-size);
    display: flex;
    justify-content: center;
    color: white;
    background-color: rgb(24, 18, 18, .3);
    position: relative;
    top: 10%;
    padding: 1rem 1rem .5rem 1rem;
}

.banner-text {
    margin: 0 3%;
    text-align: center;
}

.logo-left,
.logo-right {
    min-width: 10px;
    width: calc(.5 * var(--banner-font-size));
    height: calc(.5 * var(--banner-font-size));
    background-image: url(../images/tennis_simple_logo_green.png);
    background-size: 100% 100%;
    margin-top: 1%;
    border-radius: 50%;
}

.logo-left {
    animation: spin-right 3s linear infinite;
}

.logo-right {
    animation: spin-left 3s linear infinite;
}

@keyframes spin-right {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes spin-left {
    from {
        transform: rotate(360deg);
    }
    to {
        transform: rotate(0deg);
    }
}

.form-header {
    height: calc(var(--form-header-footer-height) + 400px);
    font-family: "Inter Variable";
    background-color:rgb(245, 245, 245);
    display: flex;
    flex-flow: column nowrap;
    justify-content: flex-end;
    padding-left: 10%;
    font-size: .5rem;
}

.header-part-one {
    max-width: clamp(45ch, 30vw, 65ch);
}

.header-part-two {
    margin: clamp(5%, 30px, 10%) 0;
}

form {
    min-height: 250px;
    height: calc(100% - 2 * var(--form-header-footer-height));
    display: flex;
    flex-flow: column nowrap;
    font-family: "Inter Variable";
    box-shadow: 0px 15px 15px 1px rgba(0, 0, 0, 0.2);
}

.form-heading {
    font-size: 20px;
    margin-bottom: -10px;
    font-family: "Manrope";
}

.form-row {
    display: flex;
    gap: 30px;
    margin-top: 27px;
    margin-left: clamp(30px, 5vw, 100px);
}

.label-input-pair {
    display: flex;
    flex-flow: column nowrap;
    width: clamp(15ch, 20vw, 35ch);
}

label {
    padding-left: 1.5px;
    font-size: .6rem;
    text-transform: uppercase;
    color: rgb(85, 82, 82);
}

input {
    border-radius: 5px;
    border: 1px solid rgb(24, 18, 18, .3);
    font-family: "Inter Variable";
}

.form-footer {
    height: var(--form-header-footer-height);
    display: flex;
    flex-flow: column nowrap;
    padding: 75px 45px;
}

input[type="submit"] {
    font-family: "Inter Variable";
    color: white;
    background-color: rgb(54, 54, 126);
    padding: 10px 25px;
    min-width: 150px;
    max-width: 200px;
    position: relative;
    bottom: -75px;
    left: 50px;
}

.log-in {
    color: rgb(54, 54, 126);
}

input:user-invalid {
    border: 1px solid red;
}

:focus {
    border: 1px solid blue;
}