:root {
    font-family: Arial, Helvetica, sans-serif;
    margin: 0px;

    
    /*-- Colors --*/

    /* Primary */
    --primary: rgba(209, 223, 252, 0.74);
    --primary-dark: rgba(171, 196, 245, 0.74);

    /* On Primary */
    --on-primary: rgb(62, 89, 178);
    --on-primary-dark: rgb(49, 74, 156);

    /*-- Element constants --*/

    /* Form */
    --form-max-width: 400px;
    --form-top-margin: 180px;

    /* Field */
    --field-hide-transition-length: 0.2s;
    --field-margin-y: 8px;

    /*-- Keyframes --*/

    --slide-medium: 0.4s;
}

body, html {
    display: flex;
    flex-direction: column;
    margin: 0px;
    height: 100%;
    min-height: 100vh;
    width: 100vw;
    overflow-x: clip;
}

/* Header */

header {
    position: absolute;
    padding: 16px;
    box-sizing: border-box;
}

/* Main */

main {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Sections */

section {
    padding-inline: 16px;
    max-width: 500px;
}

/* Container */

.container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Form */

form {
    display: flex;
    flex-direction: column;
    margin-top: var(--form-top-margin);
    /* gap: 16px; */
    max-width: var(--form-max-width);
    width: 100%;
    border-radius: 4px;
    padding: 8px;
    box-sizing: border-box;
    animation: 0.4s 1 normal fade-in;
    animation-timing-function: ease-in;
}

.form-submitted {
    font-size: 20px;
    font-weight: 700;
    margin-block: auto;
    display: flex;
}

/* Field */

.field-wrapper {
    overflow-x: hidden;
}

.field {
    padding-block: var(--field-margin-y);
    display: flex;
    flex-direction: column;
    transition: all var(--field-hide-transition-length) ease-in-out;
    overflow-y: hidden;
}

.checkbox-field {
    padding-block: var(--field-margin-y);
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Input */

input, select {
    outline: none;
    padding-block: 8px;
    padding-inline: 8px;
    border: 1px solid gray;
    border-radius: 4px;
}

select {
    width: fit-content;
}

input[type='checkbox'] {
    width: 16px;
    height: 16px;
}

input[type='checkbox']:focus {
    outline: 1px solid black;
}

/* Label */

label {
    color: rgb(40, 40, 40);
    font-size: 15px;
}

.checkbox-field label {
    padding-top: 2px;
}

/* Buttons */

button[type='submit'] {
    box-sizing: border-box;
    padding-inline: 16px;
    padding-block: 8px;
    width: fit-content;
    border-radius: 4px;
    background-color: var(--primary);
    color: var(--on-primary);
    border: none;
    margin-left: auto;
    cursor: pointer;
    transition-property: background-color, color;
    transition: 0.1s ease-out;
}

button[type='submit']:hover {
    background-color: var(--primary-dark);
    color: var(--on-primary-dark);
}

/* Code */

.snippet {
    padding: 16px;
    box-sizing: border-box;
    background-color: rgb(232, 232, 232);
    margin-bottom: 16px;
}

/* Keyframes */

.slide-from-left {
 animation: var(--slide-medium) 1 normal slide-from-left;
 animation-timing-function: ease-out;
}

@keyframes slide-from-left {

    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0%);
    }
}

.slide-to-left {
    animation: var(--slide-medium) 1 normal slide-to-left;
    animation-timing-function: ease-out;
   }
   
   @keyframes slide-to-left {
   
       from {
           transform: translateX(0%);
       }
   
       to {
           transform: translateX(-100%);
       }
   }

/*-- Responsive --*/

/* sm */
@media screen and (min-width: 400px) {
    form {
        border: 1px solid lightgray;
    }

    .container {
        /* justify-content: center; */
    }
}