html {
    --title-font-size: 7vmin;
    --title-line-height: 8vmin;
    --sub-title-font-size: 5vmin;

    --icons-gap: 4vmin;

    --icon-size-base: 7vmin;
    --icon-size-hover: 8vmin;
    --icon-color-base: #F283BC;
    --icon-color-hover: #B6DEFF;
    --icon-percentage: 60%;
    --icon-scale-hover: 1.1;
    --icon-transition-duration: 0.5;

    --unity-container-width: 40vw;
}

body {
    width: 100vw;
    height: 100vh;
    background-color: black;
    margin: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.is-loading > #vertical-items {
    transform: scale(0.9);
}
.is-ready > #vertical-items {
    transform: scale(1);
    transition: transform 1.25s ease-in-out 0.25s;
}

.is-loading {
    opacity: 0;
}
.is-ready {
    opacity: 1;
    transition: opacity 2s ease;
}

.is-loading #titles {
    opacity: 0;
}
.is-ready #titles {
    opacity: 1;
    transition: opacity 2s ease 0.15s, padding 0.2s ease;
}
.is-loading #projects-container {
    opacity: 0;
}
.is-ready #projects-container {
    opacity: 1;
    transition: opacity 2s ease 1s;
}

.is-loading #divider {
    width: 0vmin;
}
.is-ready #divider {
    width: 20vmin;
    transition: width 1s ease 1.5s;
}

.is-loading #background {
    opacity: 0;
}
.is-ready #background {
    opacity: 1;
    transition: opacity 2s ease;
}

#background {
    position: fixed;
    background-image: linear-gradient(to top, rgba(27,33,51,0.749), rgba(27,33,51,0.749)), url('./assets/bg.jpg');
    width: 100vw;
    height: 100vh;
    z-index: -1;
    background-position: 0% 0%, center;
    background-size: auto, cover;
    box-sizing: border-box;
    outline: none;
    border: 0;
}

#vertical-items {
    width: 100vw;
    /* margin-top: 15vmin; */
}

.vertical-item {
    display: block;
    padding: clamp(0.25rem, 0.5vw, 1rem) 0rem;
}

/* Title */
#titles {
    position: relative;
    height: 10vmin;
    user-select: none;
    overflow: hidden;
    padding: 4vmin 0 4vmin 0;
}

#titles.project-hovered {
    padding: 2vmin 0 6vmin 0;
}

#titles.project-hovered #title-project {
    transform: translate(-50%, 8vmin);
    transition: transform 0.2s ease;
}
.title {
    position: absolute;
    transform: translateY(-50%);

    color: white;
    font-family: 'EB Garamond', serif;
    letter-spacing: 2vmin;
    /* line-height: var(--title-line-height); */
    font-weight: 400;
    text-transform: uppercase;
    /* text-align: center; */
    white-space: nowrap;
}
#title-main {
    left: 50%;
    font-size: var(--title-font-size);
    transform: translate(-50%, 0vmin);
    /* transition: transform 0.2s ease; */
}
#title-project {
    left: 50%;
    font-size: var(--sub-title-font-size);
    transform: translate(-50%, 16vmin);
    /* transition: transform 0.2s ease; */
}

#divider {
    height: 1px;
    padding: 0;
    margin: auto;
    background-color: rgba(255, 255, 255, 0.231);
    user-select: none;
    /* margin: 1vmin auto; */
}

/* Projects */
#projects-container {
    width: 100vw;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 5.5vmin 0;
    gap: var(--icons-gap);
}


.icon {
    display: flex;
    align-items: center;
    justify-content: center;
    
    width: var(--icon-size-base);
    height: var(--icon-size-base);

    border: solid 2px var(--icon-color-base);
    border-radius: 50%;
    
    transform: scale(1);
    transition: var(--icon-transition-duration) ease-in-out;
}
.icon:hover {
    border: solid 2px var(--icon-color-hover);
    transform: scale(var(--icon-scale-hover));
}

.icon > svg {
    width: var(--icon-percentage);
    height: var(--icon-percentage);

    fill: var(--icon-color-base);
    transition: var(--icon-transition-duration) ease-in-out;
}
.icon:hover > svg {
    fill: var(--icon-color-hover);
}

#icon-download {
    position: fixed;
    top: calc(var(--icon-size-base) / 2);
    right: calc(var(--icon-size-base) / 2);
    width: calc(var(--icon-size-base) * 0.8);
    height: calc(var(--icon-size-base) * 0.8);
}
#icon-home {
    position: fixed;
    top: calc(var(--icon-size-base) / 2);
    left: calc(var(--icon-size-base) / 2);
    width: calc(var(--icon-size-base) * 0.8);
    height: calc(var(--icon-size-base) * 0.8);
}


/*** UNITY ***/
#unity-container {
    position: absolute
}

#unity-container.unity-desktop {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%)
}

#unity-container.unity-mobile {
    width: 100%;
    height: 100%
}

#unity-canvas {
    background: #231F20;
    width: var(--unity-container-width);
    height: calc(var(--unity-container-width) * 9 / 16);
}

.unity-mobile #unity-canvas {
    width: 100%;
    height: 100%
}

#unity-loading-bar {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: none
}

#unity-logo {
    width: 154px;
    height: 130px;
    background: url('./build/TemplateData/unity-logo-dark.png') no-repeat center
}

#unity-progress-bar-empty {
    width: 141px;
    height: 18px;
    margin-top: 10px;
    margin-left: 6.5px;
    background: url('./build/TemplateData/progress-bar-empty-dark.png') no-repeat center
}

#unity-progress-bar-full {
    width: 0%;
    height: 18px;
    margin-top: 10px;
    background: url('./build/TemplateData/progress-bar-full-dark.png') no-repeat center
}

#unity-footer {
    position: relative
}

.unity-mobile #unity-footer {
    display: none
}

#unity-webgl-logo {
    float: left;
    width: 204px;
    height: 38px;
    background: url('./build/TemplateData/webgl-logo.png') no-repeat center
}

#unity-build-title {
    float: right;
    margin-right: 10px;
    line-height: 38px;
    font-family: arial;
    font-size: 18px
}

#unity-fullscreen-button {
    float: right;
    width: 38px;
    height: 38px;
    background: url('./build/TemplateData/fullscreen-button.png') no-repeat center
}

#unity-warning {
    position: absolute;
    left: 50%;
    top: 5%;
    transform: translate(-50%);
    background: white;
    padding: 10px;
    display: none
}