@tailwind base;
@tailwind components;
@tailwind utilities;

@media (prefers-color-scheme: light) {
    :root {
        --p_color-bg-main: #E0DDCF; /* BEC5AD */
        --p_color-header-footer-text: #F1F0EA; /* A4B494 */
        --p_color-text-primary: #2D232E; /* 34252F */
        --p_color-header-footer: #474448; /* 3B5249 */
        --p_color-name-highlight: #b65e52; /* 8F4E45 */
        --p_color-header-footer-highlight: #D87D74; /* 8F4E45 */
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --p_color-bg-main: #1F1C21;
        --p_color-header-footer: #161418;
        --p_color-text-primary: #E6E2DC;
        --p_color-header-footer-text: #F1F0EA;
        --p_color-name-highlight: #C07A70;
        --p_color-header-footer-highlight: #D87D74; /* 8F4E45 */
    }
}

@media only screen and (max-width: 600px) {
    :root {
        --p_body-font-size: 1.1rem;
        --p_body-h1-font-size: 1.2rem;
        --p_body-h2-font-size: 1rem;
        --p_header-h1-font-size: 1rem;
        --p_header-h2-font-size: 1.1rem;
        --p_header-a-font-size: 1.05rem;
        --p_footer-font-size: 1rem;
        --p_footer-a-font-size: 1rem;
        --p_welcome-text-max-width: 100%;
        --p_body-line-height: 1.45;
        --p_welcome-text-h3-padding-left: 1.5rem;
        --p_top-welcome-min-height: 50vh;
        --p_top-welcome-max-height: auto;
        --p_top-welcome-text-width: 100%;
        --p_top-welcome-headshot-width: 70%;
        --p_about-projects-edge-padding: 1rem;
        --p_about-projects-inner-padding: 0.5rem;
        --p_middle-welcome-text-align: justify;
        --p_headshot-edge-padding: 0;
        --p_middle-welcome-min-height: 50vh;
        --p_middle-welcome-edge-padding: 1rem;
        --p_middle-welcome-inner-padding: 1rem;
        --p_footer-header-edge-padding: 1rem;
        --p_footer-header-a-top-padding: 0.4rem;
        --p_footer-header-a-side-padding: 0.7rem;
        --p_footer-top-padding: 0.5rem;
        --p_header-top-padding: 0.5rem;
        --p_header-max-height: auto;
        --p_header-min-height: 7vh;
        --p_middle-welcome-width: 100%;
        --p_middle-welcome-flex-wrap: wrap;
        --p_top-welcome-flex-direction: column-reverse;
        --p_about_width_scale: 90%;
        --p_about_flex-direction: column;
        --p_about_spacer: none;
    }
}

@media only screen and (min-width: 600px) {
    :root {
        --p_body-font-size: 1.1rem;
        --p_body-h1-font-size: 1.2rem;
        --p_body-h2-font-size: 1rem;
        --p_header-h1-font-size: 1rem;
        --p_header-h2-font-size: 1.1rem;
        --p_header-a-font-size: 1.05rem;
        --p_footer-font-size: 1rem;
        --p_footer-a-font-size: 1rem;
        --p_welcome-text-max-width: 45ch;
        --p_body-line-height: 1.45;
        --p_welcome-text-h3-padding-left: 1.5rem;
        --p_top-welcome-min-height: 50vh;
        --p_top-welcome-max-height: 150vh;
        --p_top-welcome-text-width: 70%;
        --p_top-welcome-headshot-width: 30%;
        --p_about-projects-edge-padding: 1rem;
        --p_headshot-edge-padding: 1.5rem;
        --p_about-projects-inner-padding: 0.5rem;
        --p_middle-welcome-text-align: left;
        --p_middle-welcome-min-height: 50vh;
        --p_middle-welcome-edge-padding: 1rem;
        --p_middle-welcome-inner-padding: 0.5rem;
        --p_footer-header-edge-padding: 1rem;
        --p_footer-header-a-top-padding: 0.4rem;
        --p_footer-header-a-side-padding: 0.7rem;
        --p_footer-top-padding: 2rem;
        --p_header-top-padding: 0;
        --p_header-max-height: auto;
        --p_header-min-height: 7vh;
        --p_middle-welcome-width: 100%;
        --p_middle-welcome-flex-wrap: wrap;
        --p_top-welcome-flex-direction: row;
        --p_about_width_scale: 50%;
        --p_about_flex-direction: row;
        --p_about_spacer: flex;
    }
}

@media only screen and (min-width: 768px) {
    :root {
        --p_body-font-size: 1.1rem;
        --p_body-h1-font-size: 3rem;
        --p_body-h2-font-size: 2.5rem;
        --p_header-h1-font-size: 2.0rem;
        --p_header-h2-font-size: 1.5rem;
        --p_header-a-font-size: 1.05rem;
        --p_footer-font-size: 1rem;
        --p_footer-a-font-size: 1rem;
        --p_welcome-text-max-width: 55ch;
        --p_welcome-text-edge-padding: 2rem;
        --p_body-line-height: 1.45;
        --p_welcome-text-h3-padding-left: 0;
        --p_top-welcome-min-height: 50vh;
        --p_top-welcome-max-height: 110vh;
        --p_top-welcome-text-width: 70%;
        --p_top-welcome-headshot-width: 30%;
        --p_middle-welcome-text-align: left;
        --p_headshot-edge-padding: 1.5rem;
        --p_about-projects-edge-padding: 2.5rem;
        --p_about-projects-inner-padding: 1.75rem;
        --p_about-projects-text-align: left;
        --p_middle-welcome-min-height: 100vh;
        --p_middle-welcome-edge-padding: 2.5rem;
        --p_middle-welcome-inner-padding: 1.25rem;
        --p_footer-header-edge-padding: 1rem;
        --p_footer-header-a-top-padding: 0.4rem;
        --p_footer-header-a-side-padding: 0.7rem;
        --p_footer-top-padding: 2rem;
        --p_header-top-padding: 0;
        --p_header-max-height: auto;
        --p_header-min-height: 7vh;
        --p_middle-welcome-width: 33%;
        --p_middle-welcome-flex-wrap: none;
        --p_top-welcome-flex-direction: row;
        --p_about_width_scale: 50%;
        --p_about_flex-direction: row;
        --p_about_spacer: flex;
    }
}

@media only screen and (min-width: 768px) and (max-height: 600px) {
    :root {
        --p_top-welcome-max-height: 120vh;
    }
}

@media only screen and (min-width: 768px) and (min-height: 600px) {
    :root {
        --p_top-welcome-max-height: 120vh;
    }
}

@media only screen and (min-width: 1200px) {
    :root {
        --p_body-font-size: 1.3rem;
        --p_body-h1-font-size: 3rem;
        --p_body-h2-font-size: 2.5rem;
        --p_header-h1-font-size: 2.0rem;
        --p_header-h2-font-size: 1.5rem;
        --p_header-a-font-size: 1.3rem;
        --p_footer-font-size: 1.1rem;
        --p_footer-a-font-size: 1.2rem;
        --p_welcome-text-max-width: 75ch;
        --p_welcome-text-edge-padding: 0;
        --p_headshot-edge-padding: 0;
        --p_top-welcome-text-width: 75%;
        --p_top-welcome-headshot-width: 25%;
        --p_middle-welcome-text-align: justify;
        --p_body-line-height: 1.45;
        --p_welcome-text-h3-padding-left: 0;
        --p_top-welcome-min-height: 50vh;
        --p_top-welcome-max-height: 80vh;
        --p_about-projects-edge-padding: 5rem;
        --p_about-projects-inner-padding: 3rem;
        --p_about-projects-text-align: justify;
        --p_middle-welcome-min-height: 100vh;
        --p_middle-welcome-edge-padding: 5rem;
        --p_middle-welcome-inner-padding: 2.5rem;
        --p_footer-header-edge-padding: 1rem;
        --p_footer-header-a-top-padding: 0.4rem;
        --p_footer-header-a-side-padding: 0.7rem;
        --p_footer-top-padding: 2rem;
        --p_header-top-padding: 0;
        --p_header-max-height: auto;
        --p_header-min-height: 7vh;
        --p_middle-welcome-width: 33%;
        --p_middle-welcome-flex-wrap: none;
        --p_top-welcome-flex-direction: row;
        --p_about_width_scale: 50%;
        --p_about_flex-direction: row;
        --p_about_spacer: flex;
    }
}

@media only screen and (min-width: 1200px) and (max-height: 600px) {
    :root {
        --p_top-welcome-max-height: 120vh;
    }
}

@media only screen and (min-width: 1200px) and (min-height: 600px) {
    :root {
        --p_top-welcome-max-height: 120vh;
    }
}

html, .p_body {
    min-height: 100vh;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-color: var(--p_color-bg-main);
}

.p_body {
    font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'sans-serif';
    line-height: var(--p_body-line-height);
    min-height: 100vh;
    font-size: var(--p_body-font-size);
}

.p_body h1 {
    font-size: var(--p_body-h1-font-size);
}

.p_body h2 {
    font-size: var(--p_body-h2-font-size);
}

.p_body h1, .p_body h2, .p_body h3, .p_body p {
    color: var(--p_color-text-primary);
}

.p_header h2 {
    font-size: var(--p_header-h2-font-size);
}

.p_header a {
    font-size: var(--p_header-a-font-size);
}

.p_footer {
    font-size: var(--p_footer-font-size);
}

.p_footer a {
    font-size: var(--p_footer-a-font-size);
}

.p_footer h1, footer h2, footer h3, footer p {
    color: var(--p_color-header-footer-text);
}

.p_header h1, .p_header h2, .p_header h3, .p_header p {
    color: var(--p_color-header-footer-text);
}

.p_container-main {
    min-height: 90vh;
    height: auto;
}

.p_header_nav, .p_footer_nav {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    min-height: var(--p_header-min-height);
    max-height: var(--p_header-max-height);
    background-color: var(--p_color-header-footer);
}

.p_header-left-obj, .p_header-right-obj {
    height: auto;
    width: auto;
}

.p_footer-left-obj, .p_footer-right-obj {
    height: 100%;
    width: 100%;
}

.p_header-left-obj, .p_footer-left-obj {
    color: inherit;
    display: flex;
    flex-direction: column;
    align-items: start;
    padding-left: var(--p_footer-header-edge-padding);
}

.p_header-right-obj, .p_footer-right-obj {
    display: flex;
    flex-direction: column;
    align-items: end;
    vertical-align: center;
    padding-right: var(--p_footer-header-edge-padding);
}

.p_top-welcome {
    display: flex;
    flex-direction: var(--p_top-welcome-flex-direction);
    align-items: center;
    min-height: var(--p_top-welcome-min-height);
    max-height: var(--p_top-welcome-max-height);
}

.p_subheader {
    width: 100%;
    align-items: center;
    text-align: center;
}

.p_top-section, .p_bottom-section {
    display: flex;
    flex-direction: var(--p_about_flex-direction);
    align-items: start;
}

.p_top-section h3, .p_bottom-section h3 {
    text-align: center;
}

.p_about-top-left, .p_about-bottom-left, .p_projects-top-left, .p_projects-bottom-left {
    padding-left: var(--p_about-projects-edge-padding);
    padding-right: var(--p_about-projects-inner-padding);
    width: var(--p_about_width_scale);
    text-align: var(--p_about-projects-text-align);
}

.p_about-top-right, .p_about-bottom-right, .p_projects-top-right, .p_projects-bottom-right {
    padding-right: var(--p_about-projects-edge-padding);
    padding-left: var(--p_about-projects-inner-padding);
    width: var(--p_about_width_scale);
    text-align: var(--p_about-projects-text-align);
}

.p_welcome-text {
    width: var(--p_top-welcome-text-width);
    min-height: var(--p_top-welcome-min-height);
    max-height: var(--p_top-welcome-max-height);
    align-items: center;
}

.p_welcome-text h3 {
    padding-left: var(--p_welcome-text-h3-padding-left);
}

.p_welcome-text-spacer {
    text-align: justify;
    padding-left: var(--p_middle-welcome-edge-padding);
    padding-right: var(--p_middle-welcome-inner-padding);
}

.p_name-highlight {
    color: var(--p_color-name-highlight);
    letter-spacing: 0.03em;
    font-weight: bold;
}

.p_headshot-div {
    width: var(--p_top-welcome-headshot-width);
    min-height: var(--p_top-welcome-min-height);
    max-height: var(--p_top-welcome-max-height);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: var(--p_headshot-edge-padding);
    overflow: hidden;
}

.p_welcome-separator {
    display: var(--p_about_spacer);
    flex-direction: column;
    align-items: center;
    margin-top: 5vh;
    margin-bottom: 5vh;
}

.p_separator-top {
    min-width: 75vw;
    max-width: 75vw;
    min-height: 2.5vh;
    border-top: var(--p_color-text-primary) 2px dotted;
    border-bottom: var(--p_color-text-primary) 2px dotted;
}

.p_middle-welcome {
    display: flex;
    flex-direction: row;
    flex-wrap: var(--p_middle-welcome-flex-wrap);
    align-items: start;
    vertical-align: top;
    min-height: var(--p_middle-welcome-min-height);
}

.p_left-obj-welcome, .p_right-obj-welcome, .p_middle-obj-welcome {
    min-height: var(--p_middle-welcome-min-height);
    width: var(--p_middle-welcome-width);
    text-align: var(--p_middle-welcome-text-align);
}

.p_left-obj-welcome h3, .p_right-obj-welcome h3, .p_middle-obj-welcome h3 {
    text-align: center;
}

.p_left-obj-welcome {
    align-items: start;
    padding-left: var(--p_middle-welcome-edge-padding);
    padding-right: var(--p_middle-welcome-inner-padding);
}

.p_middle-obj-welcome {
    align-items: start;
    padding-left: var(--p_middle-welcome-inner-padding);
    padding-right: var(--p_middle-welcome-inner-padding);
}

.p_right-obj-welcome {
    align-items: start;
    padding-left: var(--p_middle-welcome-inner-padding);
    padding-right: var(--p_middle-welcome-edge-padding);
}

.p_header {
    position: sticky;
    top: 0;
    z-index: 10;
    color: var(--p_color-header-footer-text);
    text-align: center;
    min-height: var(--p_header-min-height);
    max-height: var(--p_header-max-height);
    background-color: var(--p_color-header-footer);
    width: 100vw;
    display: flex;
    flex-direction: row;
    vertical-align: center;
    padding: var(--p_header-top-padding) 0;
}

.p_header ul {
    margin: 0;
    padding: 0;
    list-style: none;
    vertical-align: center;
}

.p_header ul li {
    display: inline-block;
    vertical-align: center;
}

.p_header ul li a {
    display: block;
    padding: var(--p_footer-header-a-top-padding) var(--p_footer-header-a-side-padding);
    text-decoration: none;
    vertical-align: center;
}

.p_header ul li span {
    display: block;
    padding: var(--p_footer-header-a-top-padding) var(--p_footer-header-a-side-padding);
    text-decoration: none;
    vertical-align: center;
}

.p_header ul li a:hover {
    border-bottom: var(--p_color-header-footer-highlight) 2px solid;
}

.p_footer {
    background-color: var(--p_color-header-footer);
    color: var(--p_color-header-footer-text);
    padding: var(--p_footer-top-padding) 0;
    margin-top: 2rem;
    text-align: center;
    min-height: var(--p_header-min-height);
    max-height: var(--p_header-max-height);
}

.p_footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.p_footer li {
    display: inline-block;
}

.p_footer p {
    color: var(--p_color-header-footer-text);
}

.p_footer a {
    display: block;
    padding: var(--p_footer-header-a-top-padding) var(--p_footer-header-a-side-padding);
    text-decoration: none;
}

.p_footer ul li a:hover {
    color: var(--p_color-header-footer-highlight);
}

.p_active_page {
    color: var(--p_color-header-footer-highlight);
    border-bottom: var(--p_color-header-footer-highlight) 2px solid;
}

.p_active_page &:hover {
    border-bottom: var(--p_color-header-footer-highlight) 2px solid;
}

.p_popup {
    position: relative;
    display: inline-block;
    cursor: pointer;
    height: 100%;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    vertical-align: center;
}

/* The actual popup */
.p_popup .p_resume-label {
    visibility: hidden;
    display: inline-block;
    width: max-content;
    white-space: nowrap;
    position: absolute;
    top: 125%;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.5rem 0.75rem;
    background-color: var(--p_color-header-footer);
    color: var(--p_color-header-footer-text);
    border-radius: 6px;
    z-index: 25;
}

/* Popup arrow */
.p_popup .p_resume-label::after {
    content: "";
    position: absolute;
    top: 100%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: var(--p_color-bg-main) transparent transparent transparent;
}

.p_popup .p_resume-label.show {
    visibility: visible;
    -webkit-animation: fadeIn 1s;
    animation: fadeIn 1s;
}

@-webkit-keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
