:root {
    --menu-bg-color: #2F2F2F;
    --primary-bg-color: #272727;
    --text-color-bright: #EBEBEB;
    --text-color-dark: #000000;

    --text-bgnd: #B9B9B9;

    --art-tech-bgnd: #353434;
    --art-tech-button: #FB669E;
    --highlights-bgnd: #084A50;
    --highlights-button: #B9B9B9;/*#0E929F;*/
    --about-bgnd: #2A2A2A;
    --contact-button: #FB669E;

    --shadow: 4px 4px 5px 0px rgba(0, 0, 0, 0.1);
}

* { /*-------- no highlighting -----*/
  -webkit-tap-highlight-color: transparent;
}

/* --- Font Definitions --- */
@font-face {
    font-family: feroniapi;
    src: url('../fonts/feroniapi-main/fonts/woff2/Feroniapi-MediumItalic.woff2') format('woff2'),
        url('../fonts/feroniapi-main/fonts/woff/Feroniapi-MediumItalic.woff') format('woff');
}

@font-face {
    font-family: poppins;
    src: url('../fonts/poppins/Poppins-Regular.otf') format('opentype');
}

/* --- Base HTML/Body Styles --- */
html:focus,
body:focus {
    outline: none !important;
}


html {
    padding: 0;
    margin: 0;
    color: var(--text-color-bright);
    font-size: 20px;

    font-family: poppins;
}

body {
    padding: 0;
    margin: 0;
    background-color: var(--primary-bg-color);
    color: var(--text-color-bright);
}

 
body.no-scroll, 
html.no-scroll {
    overflow: hidden !important; 
}

 

html,
body {
    width: 100%;
    overflow-x: hidden;
    position: relative;
}

img {
    max-width: 100%;
    height: auto;
}

body ::-moz-selection {
    background-color: var(--text-color-bright);
    color: var(--text-color-dark);
}

body ::selection {
    background-color: var(--text-color-bright);
    color: var(--text-color-dark);
}

body.no-scroll {
    overflow: hidden;
    position: fixed;
    width: 100%;
    height: 100%;
}

body.loaded {
    opacity: 1 !important;
    transition: opacity .5s ease-in;
}


/*------------------------------------------------------------  links  */
a:link { /* unvisited link */
    color: var(--text-color-dark);
}

a:visited {/* visited link */
    color: var(--text-color-dark);
}


a:hover {/* mouse over link */
    background-color: var(--text-color-dark);
    color: var(--text-color-bright);
    text-decoration: none;
}


a:active { /* selected link */
    background-color: var(--text-color-dark);
    color: var(--text-color-bright);
    text-decoration: none;
}

/* Only targets links inside the overlay menu */
#overlay-menu-list a:link,
#overlay-menu-list a:visited,
#overlay-menu-list a:hover,
#overlay-menu-list a:active {
    text-decoration: none;
    font-weight: normal;
    color: var(--text-color-bright);
    background-color: var(--menu-bg-color);
}

/* ----------------------------------------------------------------------------------- Menu Bar  */
#menu-bar {
    font-family: feroniapi;

    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    top: 0;

    transition: background-color 0.2s, box-shadow 0.2s;
    z-index: 1000;
}

#menu-bar.block {
    background-color: var(--menu-bg-color);
    box-shadow: var(--shadow);
}

#kati {
    transition: all 0.2s;
    transform: translateY(-100%);
}

#kati.block {
    transform: translateY(0);
}

.clickable {
    cursor: pointer;
}

/* ----------------------------------------------------------------------------------- Menu overlay  */
 
#menu-overlay {
    font-family: feroniapi;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    height: 100vh;
    height: 100svh;

    background-color: var(--menu-bg-color);
    transform: translateY(-100%);

    transition: transform 0.4s ease-in-out;
    z-index: 1001;
    visibility: hidden;
}

#menu-overlay.open {
    transform: translateY(0);
}
 
#close-menu {
    position: absolute;
}

#overlay-menu-list {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
}

#overlay-menu-list li {
    padding: 50px;
    text-align: center;
    /* Adds spacing between items */
    color: var(--text-color-bright);
}



/* ----------------------------------------------------------------------------------- Block Headlines  */
.block-head {
    font-family: feroniapi;
    color: var(--text-color-bright);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    text-align: center;
    row-gap: 10px;
}

.block-head-img {
    flex-shrink: 0;
}

.block-head-text {
    display: inline-block;
    position: relative;
}


/* ----------------------------------------------------------------------------------- Splash */
 
#splash {
    background-color: var(--primary-bg-color);
    position: fixed;
    width: 100vw;
    z-index: 1;
} 


/* ----------------------------------------------------------------------------------- Creatures */
#creatures {
    width: 100%;
    height: 100%;
    position: relative;
    top: 0;
    left: 0;
    overflow: hidden;
    
    z-index: 2;
}

/* ----------------------------------------------------------------------------------- Headline  */
#headline {
    font-family: feroniapi;
    text-align: center;
    color: var(--text-color-bright);
    position: absolute;
    top: 0;
    width: 100%;
    z-index:3;
    
    pointer-events: none;
    text-shadow: 1px 1px 50px #000; 
} 
/* ----------------------------------------------------------------------------------- Sentinel */
#sentinel {
    position: absolute;
}

 


/* ----------------------------------------------------------------------------------- Text blocks  */
#about-text,
#art-text {
    background-color: var(--text-bgnd);
    color: var(--text-color-dark);
    box-shadow: var(--shadow);
}


/* ----------------------------------------------------------------------------------- Art & Tech*/
#art-tech {
    background-color: var(--art-tech-bgnd);
    position: relative;
    z-index: 100;
}

#art-content-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    margin: 0 auto;
}

#art-img {
    height: auto;
    object-fit: cover;
    box-shadow: var(--shadow);
}

#art-text {
    position: relative;
    height: auto;
    box-sizing: border-box;
    box-shadow: var(--shadow);
}

#projects-button {
    background-color: var(--art-tech-button);
    color: var(--text-color-dark);
    display: table;
    white-space: nowrap;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    box-shadow: var(--shadow);
    z-index: 10;
}

/* ----------------------------------------------------------------------------------- Highlights / Featured */
#highlights {
    background-color: var(--highlights-bgnd);
    box-shadow: var(--shadow);
    position: relative;
    z-index: 101;
}


#featured {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
}

.featured-project-wrap {
    position: relative;
    aspect-ratio: 4 / 5;
    box-sizing: border-box;
}

.featured-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    box-shadow: var(--shadow);
}

.featured-button {
    background-color: var(--highlights-button);
    color: var(--text-color-dark);
    display: table;
    white-space: nowrap;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    box-shadow: var(--shadow);
    z-index: 10;
}


/* ----------------------------------------------------------------------------------- About & Contact*/

#about-contact {
    background-color: var(--about-bgnd);
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: var(--shadow);
    position: relative;
    z-index: 102;
}

#about-text {
    margin: 0 auto;
    position: relative;
}



#contact-button {
    background-color: var(--contact-button);
    color: var(--text-color-dark);
    display: table;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    box-shadow: var(--shadow);
    z-index: 10;
}


/* ----------------------------------------------------------------------------------- Footer  */
#footer {
    font-family: poppins, sans-serif;
    background-color: var(--menu-bg-color);
    text-align: center;
    position: relative;
    z-index: 103;
}

#full-height {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    /* height: 100lvh;*/
    width: 0vw;
}

#dynamic-height {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    height: 100dvh;
    width: 0vw;
}

/*----------------------------------------------------------------------------------- Debug */
#debug {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    font-size: 12px;
    background: rgba(0, 0, 0, .5);
    color: #0f0;
    font-family: 'Courier New', Courier, monospace;
}