body {
    background-color: #990012;
    height: 100vh;
    padding: 0;
    margin: 0;
}

#holder {
    height: 100vh;
    padding: 0;
    margin: 0;
    overflow: hidden;
}

.playfair-display-sc-regular {
    font-family: "Playfair Display SC", serif;
    font-weight: 400;
    font-style: normal;
}

.playfair-display-sc-bold {
    font-family: "Playfair Display SC", serif;
    font-weight: 700;
    font-style: normal;
}

.playfair-display-sc-black {
    font-family: "Playfair Display SC", serif;
    font-weight: 900;
    font-style: normal;
}

.playfair-display-sc-regular-italic {
    font-family: "Playfair Display SC", serif;
    font-weight: 400;
    font-style: italic;
}

.playfair-display-sc-bold-italic {
    font-family: "Playfair Display SC", serif;
    font-weight: 700;
    font-style: italic;
}

.playfair-display-sc-black-italic {
    font-family: "Playfair Display SC", serif;
    font-weight: 900;
    font-style: italic;
}

.fira-sans-light {
    font-family: "Fira Sans", system-ui;
    font-weight: 300;
    font-style: normal;
}

.oxygen-light {
    font-family: "Oxygen", system-ui;
    font-weight: 300;
    font-style: normal;
}

.oxygen-regular {
    font-family: "Oxygen", system-ui;
    font-weight: 400;
    font-style: normal;
}

.oxygen-bold {
    font-family: "Oxygen", system-ui;
    font-weight: 700;
    font-style: normal;
}

.crimson-text-regular {
    font-family: "Crimson Text", system-ui;
    font-weight: 400;
    font-style: normal;
}

.crimson-text-semibold {
    font-family: "Crimson Text", system-ui;
    font-weight: 600;
    font-style: normal;
}

.crimson-text-bold {
    font-family: "Crimson Text", system-ui;
    font-weight: 700;
    font-style: normal;
}

.crimson-text-regular-italic {
    font-family: "Crimson Text", system-ui;
    font-weight: 400;
    font-style: italic;
}

.crimson-text-semibold-italic {
    font-family: "Crimson Text", system-ui;
    font-weight: 600;
    font-style: italic;
}

.crimson-text-bold-italic {
    font-family: "Crimson Text", system-ui;
    font-weight: 700;
    font-style: italic;
}

.titles {
    text-align: center;
    left: 50%;
    margin-bottom: -1.25vh;
}

h1.titles {
    font-size: 6vh;
    color: white;
    margin-top: 0;
}

h2.titles {
    font-size: 2.8vh;
    color: white;
    margin-top: 0.6vh;
    letter-spacing: .28vh;
    transform: translateX(-50%);
}

/* TODO these should be grouped as classes to simplify the css */

#cv-button-gfx, #contact-button-gfx,
#cv-button-over, #contact-button-over,
#contact-holder-bg,
#send-message-gfx, #send-message-over {
    width:20vh;
    height:7.5vh;
}

/* TODO these should be grouped as classes to simplify the css */

#cv-button-over,
#contact-button-over,
#send-message-over {
    position:absolute;
    top:7.5vh;
    left: 0;
    transform: rotateX(90);
}
    
#cv-button {
    overflow: hidden;
    width: 20vh;
    height:7.5vh;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    top: 62%;
    cursor:pointer;
}

#contact-button {
    overflow: hidden;
    width: 20vh;
    height: 7.5vh;
    position: absolute;
    transform: translateX(-50%);
    left: 50%;
    top: 72%;
    cursor: pointer;
}

svg {
    margin:0;
}

svg text {
    dominant-baseline: middle;
    text-anchor: middle;
    font-family: "Oxygen", sans-serif;
    font-weight: 700;
    font-style: normal;
    pointer-events: none;
}

/* TODO the button text colour should be in a class too */

#cv-button-txt,
#contact-button-txt,
#send-message-txt {
    fill: #ccc43e;
}

#contact-form {
    opacity: 0;
    width: 35vh;
}

#contact-form h3,
#message-form-holder h3 {
    margin-top: -1.5vh;
    margin-bottom: 3vh;
    font-size: 5vh;
    /* color: #990012; */
    color: white;
    font-family: "Oxygen", system-ui;
    font-weight: 700;
    font-style: normal;
}

#contact-form p,
#message-form-holder p {
    margin-top: 0;
    margin-bottom: 3vh;
    font-size: 2vh;
    font-family: "Crimson Text", system-ui;
    font-weight: 700;
    font-style: normal;
    /* color: #990012; */
    color: white;
    line-height: 3.25vh;
}

#mail-input-ui {
    width: 100%;
}

#contact-form #mail-input-ui input[type=email] {
    margin-top: 1vh;
    margin-bottom: 2vh;
    font-size:1.6vh;
    width:70%;
    height:3vh;
    padding:5%;
    color: #990012;
    background-color: whitesmoke;
    transition: background-color;
    transition-timing-function: ease-in-out;
    transition-duration: 300ms;
    border: 0;
}

/* #contact-form input[type=email]:invalid {
    border-width: .5vh;
    border-color:red;
    border-style: solid;
}

#contact-form input[type=email]:valid {
    border-width: .5vh;
    border-color: green;
    border-style: solid;
} */

#contact-form #mail-input-ui input[type=email]:focus {
    outline: none;
    background-color: white;
}

#contact-form #valid-message {
    position: relative;
}

#contact-form p.validity-message {
    position: absolute;
    bottom: 0;
    margin-top:2vh;
    font-size: 1.8vh;
    font-family: "Oxygen", system-ui;
    font-weight: 400;
    font-style: normal;
    /* visibility: hidden; */
}

#contact-form #not-valid-email-message.validity-message {
    color: #ccc43e;
}

#contact-form #valid-email-message.validity-message {
    color: #24cf77;
}

#bits {
    visibility: hidden;
    display: none;
}

#square-arrow-button {
    width: 6.5vh;
    height: 6.45vh;
    margin-top: 1vh;
    cursor: pointer;
}

#square-close-button,
#message-close-button {
    float: right;
    width:3vh;
    height: 3vh;
    cursor: pointer;
}

#message-form-holder {
    padding: 7.5vh;
    width: 35vh;
    position:absolute;
    left: 50vh;
    top:0;
}

#message-input {
    font-size: 1.6vh;
    height: 20vh;
    width: 90%;
    margin-bottom: 3vh;
    padding: 5%;
}

#send-message {
    position: relative;
    overflow: hidden;
    height: 5vh;
    float: right;
}

#back-to-mail {
    position: relative;
    float: left;
    overflow: hidden;
    height: 5vh;
}
