:root {
    --color-page: #FFFFFF08;
    --color-page-special: #000000CC;
    --font-family-heading: "BrandonGrotesqueBold", sans-serif;
    --font-family-regular: "VarelaRoundRegular", sans-serif;
    --color-text: #cccccc;
    --color-text-special: #ffffff;
    --color-accent: #a7bdcc;
    --color-accent-special: #eeeeee;
    --hover-transition-duration: 300ms;
    --border: none;
    --color-border: #ffffff10;
}

@font-face {
    font-family: "BrandonGrotesqueBold";
    src: url("/fonts/BrandonGrotesqueBold.woff2");
    font-display: swap;
}

@font-face {
    font-family: "VarelaRoundRegular";
    src: url("/fonts/VarelaRoundRegular.woff2");
    font-display: swap;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-transform: uppercase;
    font-weight: bold;
}

#background {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: -1;
    top: 0;
    left: 0;
}

#profileImageContainer {
    position: relative;
    perspective: 1000px;
    width: 300px;
    height: 300px;
}

#profileImage,
#profileBackImage {
    position: absolute;
    transform-style: preserve-3d;
    transition: transform var(--hover-transition-duration);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    width: 100%;
    height: 100%;
}

#profileBackImage {
    transform: rotateY(180deg);
}

#profileImageContainer:hover #profileImage {
    transform: rotateY(180deg);
}

#profileImageContainer:hover #profileBackImage {
    transform: rotateY(0deg);
}

#wallpaperIcon {
    position: fixed;
    bottom: var(--space-small);
    right: var(--space-small);
}

#modalContainer {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: var(--color-page-special);
}

#modal {
    background-color: var(--color-page-special);
}

#modal .close-button path {
    fill: white;
}

.modal-image {
    max-width: 90vw;
    width: auto;
    height: auto;
}

@media (max-width: 600px) {

    #wallpaperIcon {
        display: none;
    }

    #profileImageContainer {
        width: 200px;
        height: 200px;
    }

}

#backgroundContainer {
    position: fixed;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}

.backgroundAnimation {
    position: absolute;

    /* Much larger than the viewport */
    left: -200vw;
    right: -200vw;
    top: -200vh;
    bottom: -200vh;

    background-color: #080914;
    background-image:
        radial-gradient(ellipse at 0% 0%, #174D57 0%, transparent 55%),
        radial-gradient(ellipse at 0% 25%, #102C40 0%, transparent 55%),
        radial-gradient(ellipse at 25% 0%, #193D61 0%, transparent 55%),
        radial-gradient(ellipse at 25% 25%, #384C6A 0%, transparent 55%);

    animation: backgroundVariance 60s ease infinite;
    will-change: transform;
}

.titleContainer {
    position: relative;
}

.locationContainer {
    position: absolute;
    left: 0;
    bottom: 0;
}

.iconContainer {
    position: absolute;
    right: 0;
    bottom: 0;
}

.icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: visible;
    min-width: 1rem;
}

.icon[onclick] {
    cursor: pointer;
}

.icon[onclick] svg {
    animation-name: shake;
    animation-duration: 5s;
    animation-timing-function: ease-out;
    animation-iteration-count: infinite;
    animation-play-state: running;
}

.icon path {
    fill: var(--color-accent);
    transition: fill var(--hover-transition-duration) ease-out;
}

.icon:hover path {
    fill: var(--color-accent-special);
}

.tooltip {
    position: fixed;
    pointer-events: none;
    z-index: 10;
}

.tooltip.card {
    background-color: var(--color-page-special);
}

.close-button {
    cursor: pointer;
}

.hidden {
    display: none;
}

.heart {
    display: inline-block;
    transition: color 500ms ease-out;
    animation-name: heart;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-play-state: paused;
}

.heart:hover {
    color: #900000;
    transform: scale(1.15);
    animation-play-state: running;
}

@keyframes backgroundVariance {
    0% {
        transform: translate(0%, 0%) rotate(0deg);
    }

    25% {
        transform: translate(-10%, 0%) rotate(-45deg);
    }

    50% {
        transform: translate(0%, 10%) rotate(360deg);
    }

    75% {
        transform: translate(10%, 0%) rotate(45deg);
    }

    100% {
        transform: translate(0%, 0%) rotate(0deg);
    }
}

@keyframes shake {
    0% {
        transform: rotateZ(0);
    }

    90% {
        transform: rotateZ(0);
    }

    92.5% {
        transform: rotateZ(20deg);
    }

    97.5% {
        transform: rotateZ(-20deg);
    }

    100% {
        transform: rotateZ(0);
    }
}

@keyframes heart {
    0% {
        transform: scale(1.0);
    }

    40% {
        transform: scale(0.75);
    }

    50% {
        transform: scale(1.05);
    }

    60% {
        transform: scale(0.75);
    }

    100% {
        transform: scale(1.0);
    }
}

::-webkit-scrollbar {
    width: var(--space-small);
    height: var(--space-small);
}

::-webkit-scrollbar-track {
    background-color: var(--color-page);
    border-radius: var(--border-radius);
}

::-webkit-scrollbar-corner {
    background-color: var(--color-page-special);
}

::-webkit-scrollbar-thumb {
    background-color: var(--color-accent-special);
    border-radius: var(--border-radius);
}