* {
    box-sizing: border-box;
}
body {
    min-height: 100vh;
    padding: 0; margin: 0;
    background-color: var(--col-main1);

    font-family: BodyFont, Arial, sans-serif;
    color: var(--col-main2);
}
:root {
    --col-main1: #06070E; /*black background*/
    --col-main1-2: #18181d; /*slightly different black*/
    --col-main2: #FDEDEE; /*whiteish text*/
    --col-main3: #e76405; /* orange; #D30C7B pink action*/
    --col-main3-2: #e87a2b;

    --font-size: 1em;
    --large-font-size: 2em;
    --title-font-size: 3em;
    --hugetitle-font-size:6em;
    --topbar-height: 70px;
    --column-width: min(1400px, 100%);
    --column-smallwidth: min(1000px, 100%);
}

@font-face {
    font-family: TitleFont;
    src: url(/asset/font/Ubuntu/Ubuntu-Medium.ttf);
}
@font-face {
    font-family: BodyFont;
    src: url(/asset/font/Poppins/Poppins-Light.ttf);
}
@font-face {
    font-family: BodyFontBold;
    src: url(/asset/font/Poppins/Poppins-SemiBold.ttf);
    font-weight:bold;
}
h1, h2, h3, p {
    color: var(--col-main2);
}
h1, h2, h3 {
    font-family: TitleFont, Arial, sans-serif;
    font-size: var(--title-font-size);
    margin: 20px 0;
}
p {
    font-size: var(--font-size);
    line-height: 1.4;
    letter-spacing: 0.2px;
    padding: 1px 0;
}
b {
    font-family: BodyFontBold, Arial, sans-serif;
}
a, .pseudolink {
    color: var(--col-main3);
    transition: .2s ease;
    text-decoration: none;
    font-family: BodyFontBold, Arial, sans-serif;
}
a:hover, .pseudolink:hover {
    color: var(--col-main3-2);
}

.topbar {
    height: var(--topbar-height); width: 100%;
    position: sticky;
    top: 0;
    background-color: var(--col-main1);
    z-index: 5;
    box-shadow: var(--col-main1-2) 0px 0px 12px 8px;
}
.topbar-elements-cont {
    width: var(--column-width);
    margin: auto;
    display: flex; flex-direction: row;
}

.logo-cont {
    height:40px;
    width:40px;
    padding: 15px;
    box-sizing: content-box;
}
.logo-cont img {
    width: 100%;
    object-fit: contain;
}
.menulist {
    width: calc(100% - 70px);
    display: flex;
    padding: 0 15px;
    justify-content: flex-end;
    align-items: center;
}
.menulist p {
    padding: 0 13px;
    font-family: BodyFont;
}

.section.one {
    height: calc(100vh - var(--topbar-height));
    width: 100%;
    position: relative;
}
.one-img-container {
    width: 100%; height:100%;
}
.one-img-container img {
    width: 100%; height:100%;
    object-fit: cover;
    object-position: 50% 0%;
}
.one-text-bigbox {
    position:absolute; top: 0; left:0;
    height:100%; width: 100%;
    margin: auto;
    padding-left: 70px;
    padding-bottom: min(30%, 200px);
    z-index: 2;
    display: flex;
    flex-direction: column-reverse;
}
.one-text-container {
    width: var(--column-width);
    margin: 0 auto;
}
.one-text-container .line1 {
    font-weight: bold;
    font-size: var(--large-font-size);
}
.one-text-container .line2 {
    font-weight: bold;
    font-size: var(--hugetitle-font-size);
    margin: 40px 0 0;
}
.one-shader {
    position: absolute; top: 0; left: 0;
    z-index: 1;
    height: 100%;
    width: 60%;
    background-image: linear-gradient(to right, rgba(0,0,0,0.6), rgba(0, 0, 0, 0));
}

.section.stndrd {
    width: var(--column-width);
    margin: calc(5vw + 100px) auto;
    padding: 20px;
}
.section.smallwidth {
    width: var(--column-smallwidth);
}
.specbg {
    background-color: var(--col-main1-2);
}

.aboutme-cont {
    display: flex;
}
.aboutme-cont div {
    padding: 20px;
    width: 50%;
}
.aboutme-portrait {
    width: min(100%, 350px);
    display: block;
    margin: auto;
    border-radius: 5px;
    overflow:hidden;
}
.aboutme-cont h2 {
    margin-top: 0;
}



.project-gallery {
    display: flex;
    align-items: row;
    overflow: hidden;
    touch-action: pan-x;
    padding: 50px 0;
    overflow-x: scroll;
}
.project-tab {
    width: max(400px, 40%);
    min-height: 550px;
    margin: 10px 25px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    border-radius: 10px; overflow:hidden;
    background-color: var(--col-main1);
}
.project-tab-topbar {
    width: 100%;
    background: linear-gradient(8deg, var(--col-main3) 3%, var(--col-main1) 55%);
    /*border-bottom: 1px solid var(--col-main3);*/
    min-height: 150px;
    display: flex;
}
.project-tab-topbar-cont {
    height: 100%;
    display: flex;align-items: center;
    padding: 10px 0 10px 15px;
}
.project-tab-topbar-logo  {
    width: 70px; height: 70px;
    object-fit: contain;
}
.project-tab-topbar-text p {
    padding: 0; margin: 10px 0;
}
.project-tab-text ul {
    padding: 15px 15px 15px 40px;
}
.project-tab-text li {
    padding: 6px 0;
}

.gallery-cont {
    padding: 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-evenly;
}
.gallery-el {
    width: max(300px, 25%);
    margin: 20px;

    height: 500px;
}
.gallery-el img {
    height: 100%; width: 100%;
    object-fit: cover;
    border-radius: 10px; overflow:hidden;
    transition: .1s ease;
}
.gallery-el img:hover {
    height: 102%; width: 102%;
    transform: translate(-1%, -1%);
}
.gallery-legend {
    display: none;
}
.gallery-big-cont {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background-color: var(--col-main1);
    z-index: 10;
    pointer-events: all;
    display: none;
}
.gallery-big-column {
    opacity: 1;
    width: var(--column-width);
    height: calc(100% - 100px);
    margin: 50px auto;
    padding: 50px;
    display: flex; flex-direction: column;
}
.gallery-big-imgcont {
    padding: 50px;
    height: 80%; width: 100%;
    min-width: 0;
    flex-shrink: 5;
    text-align: center;
}
.gallery-big-imgcont img {
    border-radius: 10px;
    max-width: 100%; max-height: 100%;
    object-fit: contain;
}
.gallery-big-legend {
    text-align: center;
}
.gallery-big-control  {
    position: absolute;
    font-size: var(--large-font-size);
    z-index: 11;
    transition: .2s;
}
.gallery-big-control:hover {
    color: var(--col-main3);
}
.gallery-big-control.closer {
    top: 40px; right: 40px;
}
.gallery-big-control.leftie {
    top: 50vh; left: 40px;
}
.gallery-big-control.rightie {
    top: 50vh; right: 40px;
}

.contact-gallery {
    padding: 20px;
    display: flex;
    justify-content: space-evenly;
    align-items: row;
    overflow: hidden;
}
.contact-cont {
    border-radius: 10px; overflow:hidden;
    background-color: var(--col-main1);
    padding: 15px;
    width: max(300px, 20%);
    min-height: 200px;
}
.contact-icon {
    padding: 10px 0;
    width: 100%;
    text-align: center;
}
.contact-icon img {
    width: 50px; height: 50px; object-fit: contain;
}
.contact-text {
    text-align: center;
}