/* TODO: SCSS this */

body {
    width: 100%;
    margin: 0;
    /* font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; */

    font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    ;
}



a {
    text-decoration: underline;
    color: rgb(221, 138, 67);
}

a:visited {
    text-decoration: underline;
    color: rgb(239, 164, 98);
}

.axiom_color_scheme {
    background-color: #F2DFCE;
    color: black;
}

.axiom_color_scheme_dark {
    background-color: #282522 !important;
    color: white !important;
}

.hr_repl {
    margin-top: 30px;
    margin-bottom: 30px;
    margin-left: 4em;
    margin-right: 4em;
    max-height: 1px;
    height: 1px;
    outline-color: #477280;
    background-color: #477280;
    outline-width: 1px;
    outline-style: solid;
}

/** 

CSS Keyframed Animations

**/

@keyframes show_project_view {
    0% {
        opacity: 0;
        pointer-events: none;
    }

    1% {
        opacity: 0.01;
    }

    100% {
        opacity: 1.0;
    }
}

@keyframes example {
    from {
        background-color: red;
    }

    to {
        background-color: yellow;
    }
}

@keyframes profile_pic {
    0% {
        background-image: url("../images/common/AxiomLogoRevamped2.png");
        transform: rotateY(0deg);
    }

    49% {
        background-image: url("../images/common/AxiomLogoRevamped2.png");
        transform: rotateY(90deg);
    }

    50% {
        background-image: url("../images/common/PFP_AxiomLogoRevamped.png");
        transform: rotateY(90deg);
    }

    100% {
        background-image: url("../images/common/PFP_AxiomLogoRevamped.png");
        transform: rotateY(0deg);
    }
}

/* Adding this class to something will trigger the animation specified by 'animation-name' */
.about_me_inline_start {
    animation-name: profile_pic;
    animation-duration: 3s;
    animation-fill-mode: forwards;
}


/** 

CSS Keyframed Animations

**/

#about_me_inline {
    min-height: 35%;
    background-image: url("../images/common/AxiomLogoRevamped2.png");
    background-size: 350px 350px;
    background-repeat: no-repeat;
    background-position: center;
    padding-top: 2%;
    padding-bottom: 2%;
}



/* Begin disappearing header shadow */

/* Project Detail View sticky header box shadow */
.sticky_header_shadow {
    box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.5) !important;
    background-color: #282522;
}

/**/

/* End disappearing header shadow */

#about_me {
    margin-left: 0.1em;
    margin-right: 0.1em;
}

#parent {
    text-align: center;
    justify-content: center;
    height: 100%;
}

#mobile_dummy {
    display: inline;
}

.header_img {
    text-align: left;
    max-width: 100px;
    height: auto;
}

div#contact_inline {
    display: flex;
    flex-direction: row;
    grid-gap: 2em;
    padding-left: 1em;
    padding-right: 1em;
    justify-content: center;
    align-content: center;
}

div#contact_inline>a {
    max-width: 10em;
}

div#contact_inline img {
    max-width: 100%;
    height: auto;
    transition: transform 2s;
    transform: scale(1);
}

div#contact_inline img:hover {
    transform: scale(1.4);
}

#footer {
    align-content: center;
    justify-content: center;
    text-align: center;
    padding-bottom: 1em;
}

.footer_dark {
    color: white !important;
}

.footer_dark a {
    color: white !important;
}

/* Flex List */
.flex-list {
    display: flex;
    align-items: center;
    text-align: center;
    justify-content: center;
    max-width: 100%;
    margin: auto;
    flex-wrap: wrap;
}

.hover_anim_lg {
    transition-property: transform, box-shadow, z-index;
    transition-duration: .9s;
    transform: scale(1);
    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.4);
}

.hover_anim_lg:hover {
    transform: scale(1.05);
    z-index: 2;
    box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.4);
}

.hover_anim_sm {
    transition: transform, box-shadow 1.5s;
    transform: scale(1);
    box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.4);
}

.hover_anim_sm:hover {
    transform: scale(1.05);
    box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.4);
}

.skill {
    /* background-image: linear-gradient(#FAA43B, #F27930); */
    background-color: #8ABABF;
    color: white;
    /* -webkit-text-stroke: .4px; */
    /* -webkit-text-stroke-color: black; */
    font-size: 1.5em;
    padding: .5em;
    margin: .5em;
    border-radius: 1em;
    font-family: 'Merriweather Sans', monospace;
    font-weight: 900;
    font-style: italic;
    text-shadow: 1px 1px black;
    flex-grow: 1;
}

.skill_dark {
    background-color: #1f2a2c !important;
}

.widget_surrounding h2 {
    font-size: 2em;
}

.widget_surrounding {
    border-radius: 10px;
    border-style: solid;
    border-width: 2px;
    border-color: #477280;
    /* max-width: 45%; */
    margin: auto;
    margin-bottom: 16px;
}

#skills_parent {
    display: flex;
    flex-direction: column;
    /* padding-left: 2em; */
    /* padding-right: 2em; */
    max-width: 100%;
    margin-left: 0.5em;
    margin-right: 0.5em;
}

/* End Flex List */

/* Project Detail View Overlay */

/*Close Button*/
#close_button {
    color: red;
    text-decoration: none;
    font-family: monospace;
    font-size: 32pt;
    border-radius: 1em;
    padding: 8px;
    margin: 8px;
    text-align: center;
    max-width: .5em;
    max-height: .5em;
    transition: all 2s;

    position: absolute;
    top: 0;
    left: 0;
}

#close_button:hover {
    overflow: visible;
}

#close_button:hover img {
    overflow: visible;
    transform: scale(120%, 120%);
    filter: saturate(100%);
}

#close_button img {
    /* margin: 4px; */
    width: 100%;
    height: 100%;
    filter: saturate(0%);
    transition: all .5s;
}

#close_button:visited {
    color: red;
    text-decoration: none;
    font-size: 3em;
}

/*End Close Button*/

/* Defining Overlay Views. */
.overlay_window_parent {
    position: fixed;
    /* Sit on top of the page content */
    width: 100%;
    /* Full width (cover the whole page) */
    height: 100%;
    /* Full height (cover the whole page) */
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    /* Black background with opacity */
    z-index: 3;
    /* Specify a stack order in case you're using a different order for other elements */
    /* cursor: pointer; Add a pointer on hover */
    -webkit-transition: all 1s;
    -moz-transition: all 1s;
    -ms-transition: all 1s;
    -o-transition: all 1s;
    transition: all 1s;
    
    opacity: 100%;
}

/* project_view_overlay, show animation */
.overlay_window_parent.show_ovr {
    opacity: 100%;
    pointer-events: visible;
    overflow: hidden;
    /* transform: scale(100%); */
}

/* project_view_overlay, hide animation */
.overlay_window_parent.hide_ovr {
    opacity: 0%;
    pointer-events: none;
    /* transform: scale(0%); */
}

/* (show) animating project_detail_parent (the window) separately */

.overlay_window_parent.show_ovr>#project_detail_parent {
    -ms-transform: translate(0%, -50%) scale(1.0);
    -webkit-transform: translate(0%, -50%) scale(1.0);
    -moz-transform: translate(0%, -50%) scale(1.0);
    -o-transform: translate(0%, -50%) scale(1.0);
    transform: translate(0%, -50%) scale(1.0);
}

/* (hide) animating project_detail_parent (the window) separately */
 .overlay_window_parent.hide_ovr>#project_detail_parent {
    -ms-transform: translate(0%, +50%) scale(0.1);
    -webkit-transform: translate(0%, +50%) scale(0.1);
    -moz-transform: translate(0%, +50%) scale(0.1);
    -o-transform: translate(0%, +50%) scale(0.1);
    transform: translate(0%, +50%) scale(0.1);

}

.overlay_window_content {
    background-color: white;
    color: black;
    width: 100%;
    height: 100%;
    padding: 1em;
    padding-top: 2em;
    flex-grow: 1;
}

.overlay_window {
    background-color: #8ABABF;
    color: black;
    box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.4);

    margin-left: 1em;
    margin-right: 1em;

    max-height: 90%;
    min-height: 90%;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    top: 50%;
    /* left: 50%; */
    transform: translate(0%, -50%);
    display: flex;
    flex-flow: column;
    transition: all 1s;
}

#slides>div>a>img {
    max-width: 100%;
    height: auto;
}

#slides>div>a>video {
    max-width: 90%;
    margin: 8px;
    height: auto;
    object-fit: cover;
}

#project_detail_img_parent {
    text-align: center;
}

#project_detail_parent h3 {
    margin: 0em;
    font-family: 'Merriweather Sans', monospace;
    font-weight: 900;
    font-style: italic;
    font-size: 1.5em;
    margin: 0.5em !important;
}

#future_carousel {
    /* background-color: gray; */
    background-color: #8ABABF;
    padding: 8px;
    padding-top: 2.5em;
    /* padding-left: 9em; */
    /* padding-right: 9em; */
}

#project_title_wrapper {
    position: sticky;
    top: 0;
    /* background-color: white; */
    box-shadow: 0px 0px 0px black;
    transition: box-shadow .2s;
    /* font-size: .65em; */
}

#project_description_wrapper {
    flex-grow: 1;
    height: 40%;
    margin: 0em;
    background-color: white;
    overflow-y: scroll;
    overflow-x: hidden;
}

#project_description_wrapper {
    flex-grow: 1;
    height: 40%;
    margin: 0em;
    background-color: #282522;
    color: white;
    overflow-y: scroll;
    overflow-x: hidden;
}

#project_description {
    margin: 1em;
}

/* End Project Detail View Overlay */

/* Projects */

#projects {
    display: flex;
    flex-direction: row;
    max-width: 100%;
    margin-left: 1em;
    margin-right: 1em;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 1em;
    grid-gap: 1em;
}

/* Project Short Description.  */
#project_short_description {
    margin-left: 1em;
    margin-right: 1em;
}

#title_header {
    margin-top: 0.5em;
}

#project_date_tag h4 {
    margin: .5em;
}

.card_bg {
    background-color: white;
    color: black;
    border-radius: 8px;
    margin-top: 1.0em;
    margin-bottom: 1.0em;
    padding: 1.0em;
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
}

.project_language_tag {
    background-color: white;
    color: black;
    margin-left: 1em;
    margin-right: 1em;
    border-radius: 4px;
    margin-top: 0.4em;
    padding-left: 0.5em;
    padding-right: 0.5em;
    /* padding: 1em; */
    box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.3);
}

.project_language_tag_inline {
    background-color: white;
    color: black;
    /* display: inline; */
    margin-left: 1em;
    margin-right: 1em;
    border-radius: 4px;
    padding-left: 0.5em;
    padding-right: 0.5em;
    /* padding: 1em; */
    box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.3);
}

#project_title {
    display: inline;
    color: white;
    /* -webkit-text-fill-color: white; */
    /* -webkit-text-stroke-width: 0.05em; */
    /* -webkit-text-stroke-color: black; */
    text-shadow: 1px 1px black;
    font-size: 1.45em;
    font-family: 'Merriweather Sans', monospace;
    font-weight: 900;
    font-style: italic;
}

.project_view {
    /* background-image: linear-gradient(#FAA43B, #F27930); */
    background-color: #8ABABF;
    color: white;
    /* margin: 1em; */
    /* padding: 1em; */
    max-width: 100%;
    border-radius: 0.5em;
    cursor: pointer;
}

.project_view_dark {
    background-color: #1f2a2c !important;
}

.project_view img {
    max-width: 100%;
    height: auto;
    box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}

/* End Projects */

/* Start Carousel */
.carousel {
    text-align: center;
    overflow: hidden;
    margin: 1em;
}

.carousel>a {
    display: inline-flex;
    width: 1.5em;
    height: 1.5em;
    background: white;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin: 0 0 0.5rem 0;
    position: relative;
}

.slides {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;

    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

.slides_links {
    margin-top: 8px;
    margin-bottom: 2px;
}

.slides_links>div {
    display: inline-block;
    width: 2em;
    height: 2em;
    margin-left: 4px;
    margin-right: 4px;
    /* width: 1rem; */
    /* height: 1rem; */
    overflow: hidden;
    transition: all 2s;
}

/* 
.slides_links > div:hover {
    transform: scale(115%,115%);
} */

.slides_links>div>a {
    /* padding: 2px; */
    /* margin: 4px; */
    /* border-radius: 8px; */
    background-color: white;
    color: rgb(59, 59, 59);
    text-decoration: underline;
    max-width: 100%;
    max-height: 100%;
}

.slides_links>div>a>img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.slides_links>div>a>video {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.slides_links>a:visited {
    /* padding: 2px; */
    /* border-radius: 8px; */
    background-color: white;
    color: black;
    text-decoration: underline;
}

.slides_links>div .overlay {
    opacity: 0%;
    height: 2em;
    width: 2em;
    position: absolute;
    background-color: white;
    pointer-events: none;
    transition: opacity 1s ease;
}

.slides_links>div:hover .overlay {
    opacity: 45%;
}

.slides>div {
    scroll-snap-align: start;
    flex-shrink: 0;
    width: 3em;
    height: 100%;
    margin-top: auto;
    margin-bottom: auto;
    margin-right: .1em;
    border-radius: .01em;
    background: #eee;
    transform-origin: center center;
    transform: scale(1);
    transition: transform 0.5s;
    position: relative;

    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 100px;
    overflow: hidden;

    box-shadow: 2px 2px 6px gray;
}

.slides>div .overlay>p {
    color: white;
    width: 100%;
    height: 100%;
    font-size: auto;
}

.slides>div .overlay>img {
    max-width: 40%;
    max-height: 40%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

.slides>div .overlay {
    opacity: 0%;
    width: 100%;
    height: 100%;
    position: absolute;
    background-color: rgba(0, 0, 0.2, 0.65);
    pointer-events: none;
    transition: opacity 1s ease;
}

.slides>div:hover .overlay {
    opacity: 100%;
}

/* Link tag surrounding the image. */
.slides>div>a {
    /* For proper sizing of the image within */
    width: 100%;
    height: 100%;
}


@supports (scroll-snap-type) {
    .carousel>a {
        display: none;
    }
}

/* iPad mode */
/* wish I could chain these together with an 'or' in css, but it seems that's not supported */
/* This is basically copy paste of the first desktop breakpoint */

@media (hover:none) {
    /* No hover effects for iPad/iPhone */
    .hover_anim_lg {
        transition-property: none;
    }

    .hover_anim_lg:hover {
        transform:scale(1);
        z-index:1;
        box-shadow:0px 0px 0px black;
    }

    .slides>div .overlay {
        transition-property: none;
    }

    .slides>div .overlay:hover {
        opacity: 0;
    }

}

@media (hover:none) and (min-width: 780px) and (orientation:landscape) 
{
    #about_me_inline {
        padding: 0%;
        min-height: 30%;
    }

    #projects {
        grid-gap: 0.5em;
    }

    .project_view {
        max-width: 46%;
    }

    #future_carousel {
        padding-top: 0em;
        padding-left: 4em;
        padding-right: .5em;
    }

    .slides>div {
        width: 3.5em;
        height: 100%;
    }

    .slides>div .overlay>p {
        font-size: .5em;
        width: 100%;
        height: 100%;
        text-align: center;
    }

    div#contact_inline {
        padding-left: 16em;
        padding-right: 16em;
    }

    div#contact_inline>a {
        max-width: 5em;
    }
}


/* Reduce font size for laptops & devices that have pointers and CAN handle a reduced font size */
@media (pointer: fine) {
    body p {
        font-size: 1.0em;
    }

    .skill {
        font-size: 1.5em;
    }

    .widget_surrounding h2 {
        font-size: 1.8em;
    }

    #project_title {
        font-size: 1.4em;
    }

    /* This is an INCREASE!*/
    #project_detail_parent h3 {
        font-size: 2.2em;
    }

    #close_button {
        max-width: 0.5em;
        max-height: 0.5em;
    }

    #skills_parent {
        display: flex;
        flex-direction: column;
        padding-left: 2em;
        padding-right: 2em;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    /* TODO: Should this be done on mobile too? */
    div#contact_inline>a {
        max-width: 5em;
    }

    /* With more space on desktops, let's show more projects.*/
    @media screen and (min-width: 780px) {
        #about_me_inline {
            padding: 0%;
            min-height: 30%;
        }

        #projects {
            grid-gap: 0.5em;
        }

        .project_view {
            max-width: 46%;
        }

        #future_carousel {
            padding-top: 0em;
            padding-left: 4em;
            padding-right: .5em;
        }

        .slides>div {
            width: 3.5em;
            height: 100%;
        }

        .slides>div .overlay>p {
            font-size: .5em;
            width: 100%;
            height: 100%;
            text-align: center;
        }

        div#contact_inline {
            padding-left: 16em;
            padding-right: 16em;
        }

        div#contact_inline>a {
            max-width: 5em;
        }
    }

    @media screen and (min-width:1250px) {
        #projects {
            margin-left: 2em;
            margin-right: 2em;
        }

        .project_view {
            max-width: 32%;
        }

        div#contact_inline>a {
            max-width: 5em;
        }

        .overlay_window {
            margin-left: 4em;
            margin-right: 4em;
        }

        /* .project_language_tag_inline {
            display: inline;
        } */
    }

    @media screen and (min-width: 1440px) {

        /*'XL' screens*/
        #about_me_inline {
            background-size: 30em 30em;
            min-height: 40%;
        }

        #projects {
            margin-left: 8em;
            margin-right: 8em;
        }

        .slides>div {
            width: 5em;
            height: 100%;
        }
    }
}