@font-face {
    font-family: "roboto-flex";
    src: url("../font/RobotoFlex-Regular.ttf") format("truetype");
}

:root {
    --primary-color: #fff;
    --secondary-color: #000;
    --secondary-color-rgb: 0, 0, 0;
    /* --secondary-color-rgb2: rgb(0, 0, 0); not working */
    --tip-color: #0f0;
    --nav-item-hover-delay: 0.5s;
    --nav-item-click-delay: 0.025s;
    --page-change-delay: 0.25s; /* , .20 or .15 ? */
    --page-container-width: 1200px;

    font-family: "roboto-flex", system-ui;
    /* font-family: "Comic Sans MS", system-ui; */
    /* font-family: "Verdana", system-ui; */
    height: 100%;
    font-size: 20px;
    color: var(--primary-color);
    background-color: var(--secondary-color);
}

::selection {
    color: var(--secondary-color);
    background-color: var(--primary-color);
}

* {
    box-sizing: border-box;
}

a:link, a:visited {
    color: var(--primary-color);
}

button,
.overlay-close-button {
    user-select: none;
}

img {
    display: block;
}

div p:nth-child(1) {
    margin-top: 0;
}

div p:nth-last-child(1) {
    margin-bottom: 0;
}

body {
    /* overflow: hidden; */
    height: 100%;
    margin: 0;
}

.column {
    display: flex;
    flex-direction: column;
}

.row {
    display: flex;
    /* flex-direction: row; */
}

.visible {
    display: block;
    /* visibility: visible; */
}

.invisible {
    display: none;
    /* visibility: hidden; */
}

#app {
    height: 100%;
}

#background-animation {
    position: absolute;
}

.page-container {
    position: absolute;
    top: 0;
    right: 0; 
    bottom: 0; 
    left: 0;
    margin: auto;
    /* margin: 6vh auto; */
    width: var(--page-container-width);
}

/* - - - NAVIGATION ITEMS - - - */
.nav-page-list {
    display: flex;
    justify-content: space-evenly;
    /* margin: 24px 0; */
    margin: 36px 0;
    /* margin: 48px 0; */
}

.nav-page-item {
    transition: color var(--nav-item-hover-delay), background-color 0.25s;
    outline: 2px solid var(--primary-color);
    /* margin: 8px; */
    padding: 12px;
    font-size: 32px;
    color: var(--primary-color);
    /* background-color: var(--secondary-color); */
    text-decoration: none;
    user-select: none;
}

.nav-page-item:hover {
    cursor: pointer;
    color: var(--secondary-color);
    background-color: var(--primary-color);
}

.nav-page-item.active {
    /* outline-color: #aaa; */
    color: var(--secondary-color);
    /* background-color: var(--primary-color); */
    background-color: #ddd;
}

/* .nav-page-item:active {
    outline-color: #bbb;
    color: #bbb;
    background-color: var(--secondary-color);
    transition: color var(--nav-item-click-delay), background-color var(--nav-item-click-delay);
} */

/* .nav-item:visited {
    color: var(--primary-color);
} */

/* - - - NAVIGATION LANGAGE - - - */
.nav-lang {
    user-select: none;
    border: 2px solid var(--primary-color);
    position: absolute;
    top: 0; right: 0;
    margin: 10px;
    padding: 10px;
}

.nav-lang a {
    cursor: pointer;
}

.nav-lang a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.page-content {
    /* outline: 1px solid var(--primary-color); */
    /* height: 750px; */
    max-height: 750px;
    padding: 8px;
    /* background-color: var(--secondary-color); */
    overflow-y: hidden;

    /* IE and Edge */
    -ms-overflow-style: none;
    
    scrollbar-width: none;
}

/* Hide scrollbar for Chrome, Safari and Opera */
.page-content::-webkit-scrollbar {
    display: none;
}

.page-content:hover {
    overflow-y: scroll;
}

/* .page-content[class^="page-*-content"] {
    transition: opacity 1s;
}

.page-content[class*="content"] {
    transition: opacity 1s;
} */

.page-content > div {
    transition: opacity var(--page-change-delay);
}

.tip {
    position: relative;
    transition: color var(--nav-item-hover-delay), background-color var(--nav-item-hover-delay);
    color: var(--tip-color);
    background: var(--secondary-color);
}

.tip:hover {
    color: var(--secondary-color);
    background: var(--tip-color);
    text-decoration: none;
}

.tip:after {
    /* z-index: 1; */
    transition: opacity 0.5s;
    outline: 1px solid var(--tip-color);
    position: absolute;
    left: -25px;
    top: calc(-18px - 11px); /* padding-top (3px + 4px * 2) = 11 */
    width: 250px;
    padding: 4px;
    color: var(--tip-color);
    background-color: var(--secondary-color);
    opacity: 0;
    text-align: center;
    content: "Cliquez pour en savoir plus !";
}

.tip:hover:after {
    opacity: 1;
}

.overlay {
    transition: opacity 0.5s;
    position: absolute;
    width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.9);
    opacity: 1;
}

/* .info-overlay:active .info-overlay-content { */
    /* opacity: 0 #bbb; */
/* } */

.overlay-body {
    /* overflow-y: scroll; */
    /* transition: width 0.35s, height 0.35s; */
    transition: width 0.25s, height 0.25s;
    outline: 3px solid var(--primary-color);
    position: absolute;
    /* top: 0; right: 0; bottom: 0; left: 0; */
    top: 5vh; 
    right: 5vw; 
    bottom: 5vh; 
    left: 5vw;
    margin: auto; 
    padding: 0px 8px;
    /* padding: 16px; */
    width: 1px; 
    height: 1px;
    /* min-width: 300px;
    min-height: 300px; */
    /* max-width: 1200px;
    max-height: 800px; */
    background-color: var(--secondary-color);
}

.overlay-body .column div {
    margin-top: 8px;
}

.overlay-close-button {
    border: 2px solid var(--primary-color);
    position: absolute;
    top: 0; right: 0;
    /* width: 32px; height: 32px; */
    margin: 16px; padding: 4px 12px;
    color: var(--primary-color);
    text-align: center;
}

.overlay-close-button:after {
    /* content: "\2573"; */
    content: '\D7';
    font-size: 24px;
}

.overlay-close-button:hover {
    cursor: pointer;
    background-color: #f00;
}

/* .animated_bg {
    --default_bg_color: #rgb(0, 0, 0);
    width: 100%; height: 100%;
    background-color: var(--default_bg_color);
} */

.projects-container {
    --tab-transition-delay: 0.25s;
    --tab-margin: 16px;
    /* --tab-padding: 8px 4px; */
    --tab-padding: 4px;

    display: flex;
    flex-wrap: wrap;
}

.project-item {
    outline: 2px solid #888;
    position: relative;
    margin: var(--tab-margin);
    padding: var(--tab-padding);
    width: calc(100% / 2 - var(--tab-margin) * 2);
    height: 350px;
    font-size: 18px;
    transition: outline-color var(--tab-transition-delay);
    /* text-shadow: var(--secondary-color) 0px 0px 4px; */
}

.project-item:hover {
    /* cursor: pointer; */
    outline: 2px solid var(--primary-color);
}

.project-info-container {
    opacity: 0;
    transition: opacity var(--tab-transition-delay);
}

/* .project-info-container p {
    border: 2px solid var(--secondary-color);
    border-radius: 4px;
    padding: 0 2px;
    background-color: rgba(var(--secondary-color-rgb), 0.65);
} */

.project-info-container p > * {
    /* display: block; */
    padding: 0 2px;
    background-color: rgba(var(--secondary-color-rgb), 0.65);
}

.project-video {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.project-name {
    margin-bottom: 8px;
    font-size: 28px;
    font-weight: bold;
    /* text-align: center; */
}

.project-devtime {
    margin-left: 6px;
    font-size: 16px;
    font-weight: normal;
    vertical-align: middle;
}

.project-short-description {
    /* background-color: rgba(0, 0, 0, 0.65); */
    margin-bottom: 6px;
}

.project-buttons-container {
    display: flex;
    position: absolute;
    top: calc(var(--tab-margin) / 4);
    right: calc(var(--tab-margin) / 4);
    /* background-color: rgba(0, 0, 0, 0.65); */
}

.project-buttons-container img {
    border: 2px solid var(--secondary-color);
    border-radius: 8px;
    margin-left: 4px;
    background-color: var(--primary-color);
    transition: transform 0.25s ease;
    /* opacity: 0.65; */
}

.project-buttons-container > img:hover {
    transform: translate(0, -1px);
    cursor: pointer;
}

.project-tab {
    border: 2px solid var(--primary-color);
    position: relative;
    display: flex;
    width: calc(var(--page-container-width) / 2 - (8px * 3));
    height: calc(96px + 10px + 96px + (8px * 2));
    /* width: calc(calc(var(--page-container-width) / 2) - calc(calc(16 * 2) * 2)); */
    margin: 8px;
    /* padding: 8px; */
    font-size: 16px;
    word-wrap: normal;
    text-align: center;
}

.project-tab * > img {
    margin: 10px;
}

/* .project-tab .row {
    
} */

.project-text-container {
    width: 100%; 
    height: 100%;
}

.project-text-container .column div {
    margin-top: 5px;
}

.overlay-thumbnails {
    display: flex;
    justify-content: center;
}

.overlay-thumbnails * {
    margin-left: 16px;
    min-width: 96px;
    min-height: 96px;
    max-width: 160px;
    max-height: 120px;
    text-align: center;
    cursor: pointer;
}

.overlay-thumbnails *:nth-child(1) {
    margin-left: 0;
}

.overlay-thumbnails *:nth-last-child(1) {
    margin-right: 0;
}

.project-more {
    border: 2px solid var(--primary-color);
    position: absolute;
    right: 0; bottom: 0;
    width: 32px; 
    height: 32px;
    margin: 8px; 
    padding: 5px;
    transition: color var(--nav-item-hover-delay), background var(--nav-item-hover-delay);
    color: var(--primary-color);
    /* background-color: var(--secondary-color); */
    background-color: rgba(0, 0, 0, 0.0);
}

.project-more:hover {
    cursor: pointer;
    color: var(--secondary-color);
    background: var(--primary-color);
}

.project-more::after {
    content: '+';
}

.overlay-project-name {
    margin-bottom: 5px;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
}

.overlay-project-devtime {
    /* position: absolute;
    top: 0; left: 0; */
    /* margin: 16px; */
    margin-bottom: 5px;

    font-size: 14px;
    font-style: italic;
    /* font-weight: 250; */
    text-align: center;
}

/* .overlay-project-devtime::before {
    content: "Date: ";
} */

.overlay-project-description {
    height: 50%;
}

.overlay-project-thumbnail {
    outline: 1px solid var(--primary-color);
    /* width: 256px; height: 256px; */
}
