/* ==== Fonts ==== */

@font-face {
    font-family: "CircularStd-Bold";
    src: url("./CircularStd-Bold.woff2");
}

@font-face {
    font-family: "CircularStd-Book";
    src: url("./CircularStd-Book.woff2");
}

@font-face {
    font-family: "CircularStd-Medium";
    src: url("./CircularStd-Medium.woff2");
}


/* ==== Vertical Content ==== */

.vertical-center {
    min-height: 100%;
    /* Fallback for browsers do NOT support vh unit */
    min-height: 100vh;
    /* These two lines are counted as one :-)       */
    display: flex;
    align-items: center;
    padding-bottom: 100px;
}


/* ==== Grid Stuff ==== */

.bottom-left {
    position: fixed;
    transform-origin: top left;
    transform: rotate(-90deg);
}

.bottom-right {
    position: fixed;
    transform-origin: top right;
    transform: rotate(90deg);
}

.top-right {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 2;
}


/* ==== Layout ==== */

body {
    font-size: 16px;
    line-height: 24px;
    font-weight: 400;
    color: #212112;
    background-color: #14151a;
    overflow-x: hidden !important;
    max-width: 100%;
    transition: all 200ms linear;
    text-align: center;
}

.container {
    max-width: 100% !important;
    overflow-x: hidden !important;
    text-align: center;
}

h1 {
    font-size: 80px;
    font-family: 'CircularStd-Medium', 'Lato', sans-serif;
    line-height: 1.0;
    font-weight: 700;
    color: #fff;
}

h2 {
    font-size: 55px;
    font-family: 'CircularStd-Medium', 'Lato', sans-serif;
    line-height: 1.0;
    font-weight: 400;
    color: #fff;
}

h3 {
    font-size: 38px;
    font-family: 'CircularStd-Medium', 'Lato', sans-serif;
    line-height: 1.0;
    font-weight: 400;
    color: #fff;
}

h4 {
    font-size: 30px;
    font-family: 'CircularStd-Medium', 'Lato', sans-serif;
    line-height: 1.0;
    font-weight: 400;
    color: #fff;
}

h5 {
    font-size: 14px;
    font-family: 'CircularStd-Book', 'Lato', sans-serif;
    line-height: 1.0;
    color: lightgray;
}

h1 span {
    display: inline-block;
    transition: all 300ms linear;
    opacity: 1;
    transform: translate(0);
}

h2 span {
    display: inline-block;
    transition: all 300ms linear;
    opacity: 1;
    transform: translate(0);
}

h3 span {
    display: inline-block;
    transition: all 300ms linear;
    opacity: 1;
    transform: translate(0);
}

h4 span {
    display: inline-block;
    transition: all 300ms linear;
    opacity: 1;
    transform: translate(0);
}


/* ==== Gradient Title ==== */

.gradientTitle {
    animation: flow 5s ease-in-out infinite;
    background: linear-gradient(-60deg, #904e95, #4e6f95, #e74c7e, #ee7752, #b9b73f);
    background-size: 300%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

@keyframes flow {
    0% {
        background-position: 0 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0 50%;
    }
}


/* ==== Links ==== */

a::before {
    text-decoration: none;
    color: inherit;
}

a:hover,
a:focus,
a:active {
    text-decoration: none;
    color: #fff;
}

a:visited {
    text-decoration: none;
    color: #fff;
}


/* ==== Memoji Image to be shown ==== */

.img {
    display: none;
}

.img.show {
    display: block;
}


/* === Buttons ==== */

.arrow-bump i {
    margin-left: 4px;
    -webkit-transition: 0.2s 0.3s ease-out;
    transition: 0.2s 0.3s ease-out;
}

.arrow-bump:hover i {
    margin-left: 16px;
}

.cvButton {
    display: table;
    text-align: center;
    margin: 0 auto;
}

.cvButton.arrow-bump {
    font-size: 30px;
    font-family: 'CircularStd-Medium', 'Lato', sans-serif;
    line-height: 1.0;
    font-weight: 400;
    letter-spacing: 0.02em;
    padding: 15px;
}

.cvButton.arrow-bump a {
    color: #fff;
}

.cvButton.arrow-bump i {
    transition: 0.2s 0s ease;
}


/* ==== Underline Button ==== */

.underline-btn {
    font-family: 'CircularStd-Bold', 'Lato', sans-serif;
    padding: 1em 0;
    border-radius: 0;
    color: #fff;
    margin-top: 2rem;
    font-size: 0.8rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    position: relative;
}

.underline-btn:before,
.underline-btn:after {
    content: '';
    display: block;
    position: absolute;
    height: 1px;
    width: 0;
}

.underline-btn:before {
    transition: width 0s ease, background .4s ease;
    left: 0;
    right: 0;
    bottom: 6px;
}

.underline-btn:after {
    right: 2.2%;
    bottom: 6px;
    background: #fff;
    transition: width .4s ease;
}

.underline-btn:hover:before {
    width: 97.8%;
    background: #fff;
    transition: width .4s ease;
}

.underline-btn:hover:after {
    width: 97.8%;
    background: 0 0;
    transition: all 0s ease;
}

.underline-btn a {
    color: #fff;
}


/* ==== Mail ==== */

.mail {
    color: #fff;
}

.mail:before,
.mail:after {
    content: '';
    display: block;
    position: absolute;
    height: 3px;
    width: 0;
}

.mail:before {
    transition: width 0s ease, background .4s ease;
    left: 0;
    right: 0;
    bottom: 0px;
    border-radius: 10px;
}

.mail:after {
    right: 0%;
    bottom: 0px;
    background: #1a4dff;
    transition: width .4s ease;
    border-radius: 10px;
}

.mail:hover:before {
    width: 100%;
    background: #1a4dff;
    color: #1a4dff;
    transition: width .4s ease;
}

.mail:hover:after {
    width: 100%;
    background: 0 0;
    transition: all 0s ease;
}

.mail a {
    color: #fff;
}

/* ==== intive ==== */

.intive {
    color: #16A594;
}

.intive:before,
.intive:after {
    content: '';
    display: block;
    position: absolute;
    height: 3px;
    width: 0;
}

.intive:before {
    transition: width 0s ease, background .4s ease;
    left: 0;
    right: 0;
    bottom: 0px;
    border-radius: 10px;
}

.intive:after {
    right: 0%;
    bottom: 0px;
    background: #16A594;
    transition: width .4s ease;
    border-radius: 10px;
}

.intive:hover:before {
    width: 100%;
    background: #16A594;
    transition: width .4s ease;
}

.intive:hover:after {
    width: 100%;
    background: 0 0;
    transition: all 0s ease;
}

.intive a {
    color: #16A594;
}


/* ==== quartettmobile ==== */

.quartettmobile:before,
.quartettmobile:after {
    content: '';
    display: block;
    position: absolute;
    height: 3px;
    width: 0;
}

.quartettmobile:before {
    transition: width 0s ease, background .4s ease;
    left: 0;
    right: 0;
    bottom: 0px;
    border-radius: 10px;
}

.quartettmobile:after {
    right: 0%;
    bottom: 0px;
    background: #3170c8;
    transition: width .4s ease;
    border-radius: 10px;
}

.quartettmobile:hover:before {
    width: 100%;
    background: #3170c8;
    transition: width .4s ease;
}

.quartettmobile:hover:after {
    width: 100%;
    background: 0 0;
    transition: all 0s ease;
}

/* ==== tecube ==== */

.tecube:before,
.tecube:after {
    content: '';
    display: block;
    position: absolute;
    height: 3px;
    width: 0;
}

.tecube:before {
    transition: width 0s ease, background .4s ease;
    left: 0;
    right: 0;
    bottom: 0px;
    border-radius: 10px;
}

.tecube:after {
    right: 0%;
    bottom: 0px;
    background: #8a5df6;
    transition: width .4s ease;
    border-radius: 10px;
}

.tecube:hover:before {
    width: 100%;
    background: #8a5df6;
    transition: width .4s ease;
}

.tecube:hover:after {
    width: 100%;
    background: 0 0;
    transition: all 0s ease;
}


/* ==== researchtopic ==== */

.researchtopic {
    color: lightgray;
    font-size: medium;
    font-style: italic;
}

/* ==== ukb ==== */

.ukb {
    color: #325096;
}

.ukb:before,
.ukb:after {
    content: '';
    display: block;
    position: absolute;
    height: 3px;
    width: 0;
}

.ukb:before {
    transition: width 0s ease, background .4s ease;
    left: 0;
    right: 0;
    bottom: 0px;
    border-radius: 10px;
}

.ukb:after {
    right: 0%;
    bottom: 0px;
    background: #325096;
    transition: width .4s ease;
    border-radius: 10px;
}

.ukb:hover:before {
    width: 100%;
    background: #325096;
    transition: width .4s ease;
}

.ukb:hover:after {
    width: 100%;
    background: 0 0;
    transition: all 0s ease;
}

.ukb a {
    color: #325096;
}


/* ==== Dark Mode 🌙 ==== */

#switch,
#circle {
    cursor: pointer;
    -webkit-transition: all 300ms linear;
    transition: all 300ms linear;
}

#switch {
    width: 60px !important;
    height: 32px;
    border: 2px solid #b2866fa4;
    border-radius: 27px;
    background: #000;
    position: relative;
    display: block;
    margin: 0 auto;
    text-align: center;
    opacity: 1;
    transform: translate(0);
    transition: all 300ms linear;
}

#circle {
    position: absolute;
    top: 2px;
    left: 3px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
}

.switched {
    border-color: #dee2e6 !important;
    background: #fff !important;
}

.switched #circle {
    left: 29px;
    box-shadow: 0 4px 4px rgba(26, 53, 71, 0.25), 0 0 0 1px rgba(26, 53, 71, 0.07);
    background: #000;
}


/* ==== Dark Mode Background ==== */

body.hero-anime #switch {
    opacity: 0;
    transform: translateY(40px);
    transition-delay: 1900ms;
}

body.dark {
    color: #fff;
    background-color: #fff;
}

body.dark h1 {
    color: #fff;
}

body.dark h1 span {
    transition-delay: 0ms !important;
}

body.dark h2 {
    color: #fff;
}

body.dark h2 span {
    transition-delay: 0ms !important;
}

body.dark h3 {
    color: #fff;
}

body.dark h3 span {
    transition-delay: 0ms !important;
}

body.dark h4 {
    color: #fff;
}

body.dark h4 span {
    transition-delay: 0ms !important;
}

body.dark p {
    color: #fff;
    transition-delay: 0ms !important;
}

body.dark .bg-light {
    background-color: #14151a !important;
}

body.dark .cvButton.arrow-bump a {
    color: #fff;
}

body.dark .arrow-bump {
    color: #fff;
}

body.dark .cvButton {
    color: #fff;
}

body.dark .underline-btn {
    color: #fff;
}


/* ==== Light Mode 🔆 ==== */

body.light {
    color: #fff;
    background-color: #fff;
}

body.light h1 {
    color: #1f2029;
}

body.light h1 span {
    transition-delay: 0ms !important;
}

body.light h2 {
    color: #1f2029;
}

body.light h2 span {
    transition-delay: 0ms !important;
}

body.light h3 {
    color: #1f2029;
}

body.light h3 span {
    transition-delay: 0ms !important;
}

body.light h4 {
    color: #1f2029;
}

body.light h4 span {
    transition-delay: 0ms !important;
}

body.light h5 {
    color: darkgray;
}

body.light h5 span {
    transition-delay: 0ms !important;
}

body.light p {
    color: #fff;
    transition-delay: 0ms !important;
}

body.light .bg-light {
    background-color: #fff !important;
}

body.light .mail a {
    color: #1f2029;
}

body.light .cvButton.arrow-bump a {
    color: #000;
}

body.light .underline-btn {
    color: #000;
}

body.light .underline-btn:hover:before {
    width: 97.8%;
    background: #000;
    transition: width .4s ease;
}

body.light .underline-btn:hover:after {
    width: 97.8%;
    background: 0 0;
    transition: all 0s ease;
}


/* ==== Media ==== */

@media (min-width: 1200px) {
    .footer {
        position: fixed;
    }
    .bottom-left {
        left: 40px;
    }
    .bottom-right {
        right: 40px;
    }
}

@media (min-width: 768px) {
    .bottom-left {
        bottom: 24px;
        left: 16px;
    }
    .bottom-right {
        bottom: 24px;
        right: 16px;
    }
}

@media (max-width: 767px) {
    .vertical-center {
        text-align: left;
    }
    h1 {
        font-size: 30px;
    }
    h2 {
        font-size: 30px;
        padding-left: 10px;
    }
    h3 {
        font-size: 25px;
        padding-left: 10px;
    }
    h4 {
        font-size: 22px;
        padding-left: 10px;
    }
    h5 {
        font-size: 14px;
        padding-left: 10px;
        color: lightgray;
    }
    h6 {
        font-size: 10px;
        padding-left: 10px;
    }
    .link {
        display: table;
        text-align: left;
        margin: 0 auto;
    }
    .bottom-left {
        display: none;
    }
    .bottom-right {
        display: none;
    }
}

@media screen and (max-width: 667px) {
    html,
    body {
        overflow-x: hidden !important;
    }
    .container {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }
}

@media (max-width: 450px) {
    h3 {
        font-size: 25px;
    }
} 