/*
Theme Name: mein_theme
Author: moritz grossauer
Version: 1.0
*/

/*A11Y.CSS*/
    .skip {
        font-size: 0;
        position: absolute;
        z-index: -1;
        color: black;
        cursor: pointer;
        text-decoration: none;
    }

    .skip:focus, .skip.opened {
        font-size: 1em;
        background-color: white;
        display: block;
        z-index: 100;
        text-align: center;
        outline: none;
    }

    *:focus:not(.skip) {
        border: none;
        outline: 0.1em solid white;
        outline-offset: 0.5em;
    }

/*PORTFOLIO_MAIN.CSS*/
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    :focus:not(:focus-visible) {
        outline: none;
    }

    ::selection {
        background: var(--primary-color);
        color: var(--color-text);
    }

    body {
        font-family: var(--font-family);
    }

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

    img {
        width: 100%;
        height: auto;
        padding: 0;
        display: block;
    }

/*RESET.CSS*/
    /* http://meyerweb.com/eric/tools/css/reset/
    v2.0 | 20110126
    License: none (public domain)
    */

    html, body, div, span, applet, object, iframe,
    h1, h2, h3, h4, h5, h6, p, blockquote, pre,
    a, abbr, acronym, address, big, cite, code,
    del, dfn, em, img, ins, kbd, q, s, samp,
    small, strike, strong, sub, sup, tt, var,
    b, u, i, center,
    dl, dt, dd, ol, ul, li,
    fieldset, form, label, legend,
    table, caption, tbody, tfoot, thead, tr, th, td,
    article, aside, canvas, details, embed,
    figure, figcaption, footer, header, hgroup,
    menu, nav, output, ruby, section, summary,
    time, mark, audio, video {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
    }
    /* HTML5 display-role reset for older browsers */
    article, aside, details, figcaption, figure,
    footer, header, hgroup, menu, nav, section {
        display: block;
    }
    body {
        line-height: 1;
        margin: 0;
    }
    ol, ul {
        list-style: none;
    }
    blockquote, q {
        quotes: none;
    }
    blockquote:before, blockquote:after,
    q:before, q:after {
        content: '';
        content: none;
    }
    table {
        border-collapse: collapse;
        border-spacing: 0;
    }

/*PORTFOLIO_UTILS.CSS*/
    .lowercase {
    text-transform: none;
    }

/*PORTFOLIO_VARIABLE.CSS*/
    :root {

        --side-space: 2.5vw;

        --font-family: 'Inter', sans-serif;
        --font-light: 100;
        --font-regular: 400;
        --font-semibold: 600;
        --font-copy: var(--font-regular) 17px/1.45 var(--font-family);
        --font-copy-small: var(--font-regular) 14px/1.75 var(--font-family);
        --font-head: var(--font-semibold) clamp(1.5rem, 1.273rem + 0.947vw, 2.125rem)/1.25 var(--font-family);
        --font-subhead: var(--font-light) clamp(1.2rem, 1.113rem + 0.361vw, 1.438rem)/1.2 var(--font-family);
        --font-tag: var(--font-light) clamp(0.8rem, 0.705rem + 0.398vw, 1.063rem)/1.0 var(--font-family);
        --font-marquee: var(--font-regular) clamp(1.063rem, 0.7rem + 1.511vw, 2.06rem)/1.0 var(--font-family);
        --font-filter: var(--font-regular) 19px/1.0 var(--font-family);
    }



/*============
!!!MAIN.CSS!!!
============*/

@font-face {
    font-family: 'Inter';
    src: url(https://www.moritz-grossauer.com/wp-content/uploads/2026/01/Inter-VariableFont_opsz-wght.ttf) format('truetype');
    font-style: normal;
}

@font-face {
    font-family: 'Inter';
    src: url(https://www.moritz-grossauer.com/wp-content/uploads/2026/01/Inter-Italic-VariableFont_opsz-wght.ttf) format('truetype');
    font-style: italic;
}

@font-face {
    font-family: 'Sora';
    src: url(https://www.moritz-grossauer.com/wp-content/uploads/2026/01/Sora-VariableFont_wght.ttf) format('opentype');
}

html {
    font-size:16px;
}

body {
    line-height:1.4;
}

.content {
    flex: 75%;
    margin-left: 25%;
}

.item-link {
    text-decoration:none;
    color:inherit;
    display:inline-block;
}


/* NAV */
.side {
    flex:25vw;
    height: 100%;
    padding: 20vh 0 0 5vw;
    position: fixed;
}

ul.nav {
    display: flex;
    flex-direction: column;
    list-style-type: none;
    overflow: visible;
}

ul.nav li {
    padding: 0px 0px 14px 0px;
}

ul.nav li a {
    float:left;
    padding: 5px 7px 5px 9px;
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    font-weight: 500;
    border: 1.5px solid black;
    border-radius: 25px;
}

ul.nav li a:hover {
    transform: scale(1.2);
    color: white;
    border: 2px solid black;
    background-color: black;
    transition: transform 0.25s ease;
    font-weight: 600;
}


/* HEADER */
header {
    display: flex;
    flex: 75vw;
    max-width: 100%;
    flex-direction: column;
    align-items: center;
    height: 100vh;
    padding-top: calc(20vh - 6.5px);
}

h1,
.subhead {
    white-space: nowrap;
}

h1 {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, calc(0.000rem + 10.000vw), 5rem);
    font-weight: 700;
    line-height: 1;
    margin: 0 0 4vh 0;
}

.subhead {
    display: inline-block;
    width: fit-content;
    font-family: 'Inter', sans-serif;
    font-size: auto /*clamp(1.50rem, calc(1.364rem + 0.682vw), 1.88rem)*/;
    font-weight: 500;
}

header img {
    display:block;
    margin-top: 9vh;
    height: auto;
    width:20vw;
    min-width:200px;
}


/*SERVICE*/
.service {
    scroll-margin-top: calc(18vh);
}

.service-list strong {
    line-height: 2.0;
}


/*PROJECTS*/
.projects {
    scroll-margin-top: calc(18vh);
}

.gallery {
    display: flex;
    gap: 1vw;
    width: 72vw;
    height: 50vh;
    align-items: flex-start;
/*     margin-top: 4rem;
    scroll-margin-top: 20vh; */
}

.item {
    width:8vw;
    overflow:visible;
    transition: width 0.2s ease;
    position: static;
}

.item img{
    display:block;
    width: 100%;
    height:8vw;
    object-fit:cover;
    transition: height 0.2s ease width 0.2s ease;
}

figcaption {
    margin-top: 2rem;
}

figcaption, figcaption p {
    font-family: 'Inter', sans-serif;
    display:block;
    position: absolute;
    font-size: 1.1rem;
    font-weight: 500;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0ms;
}

.caption_title {
    display: inline;
    font-family: 'Inter', sans-serif;
    font-size: 1.1rem;
    line-height: 1;
    font-weight: 500;
    border:1.5px solid black;
    border-radius: 25px;
    padding: 5px 8px 5px 7px;
}

.item:hover {
    width: 15vw;
    position: relative;
    z-index: 1;
}

.item:hover img {
    width: 15vw;
    height: auto;
}

.item:hover figcaption, 
.item:hover figcaption p {
    opacity: 1;
    pointer-events: auto;
    width: 28rem;
}

.item:hover .caption_title {
    margin-left: -0.1rem;
}

.item.align-right .caption_title {
    margin-right: -0.1rem;
}

.item.align-right figcaption, 
.item.align-right figcaption p {
    text-align: right;
    left: auto;
    right: 0;
}


/*TYPOGRAFIE*/
.italic {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-style: italic;
    line-height: 1.4;
}

h2 {
    font-family: 'Inter', sans-serif;
    font-size: 3.5rem;
    font-weight: 700;
    margin: 7.5rem 0rem 3rem 0rem;
}

p {
/*     display: block; */
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    max-width: 45vw;
    font-weight: 500;
}

.tag {
    display: inline;
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    font-weight: 500;
    margin-left:-0.2rem;
    border:1.5px solid black;
    border-radius: 25px;
    padding: 5px 8px 5px 9px;
}


/*CV*/
.cv-section {
    scroll-margin-top: calc(18vh);
}

ul.cv {
    display: block;
    margin-top:4rem;
    margin:0;
    padding:0;
    max-width: 45vw;
}

ul.cv li {
    padding:0.5rem;
    max-width:80ch;
}

ul.cv li a {
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
/*     line-height: 1.5; */
    font-weight: 500;
}


/*CONTACT*/
.contact-section {
    scroll-margin-top: calc(18vh);
    margin-bottom: 3rem;
}

ul.contact {
    display: flex;
    flex-direction: column;
    height: auto;
    list-style-type: none;
    overflow: visible;
}

ul.contact li {
    margin-top: 14px;
    margin-bottom: 14px;
}

ul.contact li a{
    display: inline;
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    font-weight: 500;
    border: 1.5px solid black;
    border-radius: 25px;
    padding: 5px 7px 5px 7px;
}

ul.contact li a:hover {
    transform: scale(1.2);
    color: white;
    border: 2px solid black;
    background-color: black;
    transition: transform 0.25s ease;
    font-weight: 600;
}

.contact img {
    max-width: 15rem;
    height: auto;
    margin-top: 3rem;
}


/* FOOTER */
footer {
    display: grid;
    margin: 5rem 0rem 0rem 4rem;
    width: auto;
    height: 3rem;
    grid-template-columns: 1fr 1fr 1fr;
}

footer p {
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    text-align: left;
    color:gray;
}



/*============
!!!SUBPAGE.CSS!!!
============*/

/*PROJECT*/
.mobile-flow { display: none; }

.subpage .flex-content {
    display:flex;
    flex-direction: row;
    margin: 15vh 0vw 0vw 0vw;
}

.subpage .flex-reverse {
    display: flex;
    justify-content: flex-start;
    flex-direction: row-reverse;
    margin-left: 4vw;
    margin-right: 7vw;
}

.subpage .flex-row-text-desktop {
    max-width: 27vw;
    margin-right: 3rem;
    margin-top: -1.7vw;
}

.subpage .flex-gallery-desktop {
    height: auto;
    justify-content: flex-end;
    max-width: 60vw;
}

.subpage .flex-gallery-desktop img {
    width: 100%;
    margin-bottom: 2.5rem;
}

/*CLOSE*/
.subpage .close {
    display: block;
    width: 4vw;
    position: fixed;
    right: 0;
    margin:7px 22px 0px 0px;
}

.subpage .close a {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 1.2rem;
    border: 1.5px solid black;
    border-radius: 25px;
    padding: 5px 7px;
}

.subpage .close:hover a {
    transform: scale(1.2);
    color: white;
    border: 2px solid black;
    background-color: black;
    transition: transform 0.25s ease;
    font-weight: 600;
}


/* TYPOGRAFIE */
.subpage-h2 {
    font-family: 'Inter', sans-serif;
    font-size: clamp(40px, 3.5vw, 60px);
    font-weight: 700;
    margin: 0rem 0rem 1.3rem 0rem;
}

.tag-list {
    display: block;
    margin: 0rem 0rem 1.3rem -0.1rem;
}

.tag-gaps {
    display: inline-block;
    padding:0rem 0.4rem 0.8rem 0rem;
}

.subpage .proj-tag {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    font-weight: 500;
    border:1.5px solid black;
    border-radius: 25px;
    padding: 5px 8px 5px 9px;
}

.subpage p {
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    line-height: 1.5;
    font-weight: 500;
}

.subpage .italic {
    font-family: 'Inter', sans-serif;
    font-style: italic;
    font-weight: 500;
}



/*=====================
!!!MEDIA QUERIES.CSS!!!
======================*/

/*======
HOMEPAGE
=======*/
/*NAV*/
    @media (max-width: 1000px) {
        .side {
            width: 60px;
            padding: calc(20vh - 6.5px) 0 0 20px;
        }

        ul.nav {
            align-items: flex-start;
        }

        ul.nav li {
            padding: 0 0 10px 0;
        }

        ul.nav li a {
            writing-mode: vertical-lr;
            text-orientation: mixed;
            transform: rotate(180deg); /* Leserichtung von unten nach oben */
            font-size: 1.2rem;
            padding: 7px 3px 8px 3px;
        }

        ul.nav li a:hover {
            transform: scale(1.1) rotate(180deg);
            color: white;
            border: 2px solid black;
            background-color: black;
            transition: transform 0.25s ease;
            font-weight: 600;
        }
    }

    @media (max-width: 600px) {
        .side {
            width: 50px;
            padding: calc(20vh - 6.5px) 0 0 15px;
        }

        ul.nav li a {
            font-size: 1rem;
            padding: 7px 2px 7px 2px;
        }
    }

/*HEADER*/
    @media (max-width: 1000px) {
        header {
            margin-left: 60px; /* HEADER bekommt mehr Platz */
        }

        header img {
            width: 35vw;
        }
    }

    @media (max-width: 600px) {
        header {
            margin-right: 13px;
        }

        .subhead {
            white-space: normal;
            line-height: 1.4;
        }

        .subhead .line1, .subhead .line2 {
            display: block;
            text-align: center;
        }

        .seperator {
            display: none;
        }

        header img {
            width: 20vw;
        }
    }

/*CONTENT*/
    @media (max-width: 1000px) {
        .content {
            margin-left: 22%;
        }
    }

    @media (max-width: 600px) {
        .content {
            margin-left: 20%;
            /* margin-right: 15px; */
        }
    }   

/*TYPOGRAFIE*/
    @media (max-width: 1000px) {
        p {
            max-width: 70vw;
        }

        .tag {
            margin-left: -2.5rem;
        }
    }

    @media (max-width: 600px) {
        h2 {
            font-size: 1.6rem;
            margin: 5rem 0rem 1rem 0rem;
        }

        p {
            font-size: 1rem;
        }

        .tag {
            font-size: 1rem;
            margin-left: -0.1rem;
/*             padding: 4px 6px 4px 6px; */
        }
    }

/*PROJECTS*/
    @media (max-width:1000px) {
        .item:hover figcaption {
            width: 40vw;
        }
    }

    @media (max-width: 600px) {
        .gallery {
            width: 85%;
            flex-direction: column;
            gap: 2.5rem;
            height: auto;
        }

        .item {
            width: 100%;
            position: static;
        }

        .item:hover,
        .item:hover img {
            transform: none;
            width:100%;
        }

        .item img {
            height: 100%;
            width: auto;
            max-height: 20vh;
            object-fit: cover;
        }

        figcaption {
            position: static;
            opacity: 1;
            pointer-events: auto;
            margin-top: 0.75rem;
            width: 100%;
            font-size: 1rem;
        }

        .caption_title {
            display: inline-block;
            font-size: 1rem;
            margin-bottom: -0.8rem;
        }

        figcaption p {
            display: none;
        }

        .item.align-right figcaption {
            text-align: left;
            right: auto;
            left: auto;
        }
}

/*CV*/
    @media (max-width: 1000px) {
        ul.cv {
            max-width: 70vw;
        }
    }

    @media (max-width: 600px) {
        ul.cv li a {
            font-size: 1rem;
        }
    }

/*CONTACT*/
    @media (max-width: 1000px) {
        .contact li a {
            font-size: 1rem;
        }

        .contact li a:hover {
            transform: scale(1.1);
        }

        .contact img {
            max-width: 25vw;
        }
    }

    @media (max-width: 600px) {
        .contact img {
            max-width: 35vw;
            margin-top: 1rem;
        }

        ul.contact li a {
            font-size: 1rem;
        }
    }

/*FOOTER*/
    @media (max-width: 600px) {
        footer {
            display:flex;
            flex-direction: column;
            margin: 3rem 1rem 2rem 70px;
            gap: 1rem;
            /* grid-template-columns: 1fr; */
            font-size: 0.8rem;
        }
    }



/*=====
SUBPAGE
=====*/

/* mobile */
    @media (max-width: 1000px) {
        .flex-gallery-desktop,
        .flex-row-text-desktop { display: none; }
        .subpage .flex-content {
            margin-top: 8vh;
        }

        .subpage .mobile-flow { 
            display: block;
            margin-right: 5vw;
            margin-left: 3vw;
        }

        .subpage .mobile-flow h2 {
            font-family: 'Inter', sans-serif;
            font-size: clamp(40px, 3.5vw, 60px);
            font-weight: 700;
            margin: 0rem 0rem 1.3rem 0rem;
        }

        .subpage .mobile-flow .tag-list {
            display: block;
            margin: 0rem 0rem 1.3rem -0.1rem;
        }

        .subpage .mobile-flow .tag-gaps {
            display: inline-block;
            padding:0rem 0.4rem 0.8rem 0rem;
        }

        .subpage .mobile-flow .proj-tag {
            display: inline-block;
            font-family: 'Inter', sans-serif;
            font-size: 1.2rem;
            font-weight: 500;
            border:1.5px solid black;
            border-radius: 25px;
            padding: 5px 8px 5px 9px;
        }

        .subpage .mobile-flow img {
            width: 100%;
            margin: 2rem 0;
        }

        .subpage .mobile-flow p {
            display: block;
            width: auto;
        }
    }

    @media (max-width: 600px) {
        .subpage .mobile-flow h2 {
            font-size: clamp(30px, 3.5vw, 50px);
        }

        .subpage .mobile-flow .proj-tag {
            font-size: 1rem;
            padding: 4px 6px 4px 6px;
        }

        .subpage .mobile-flow p {
            font-size: 1rem;
        }

        /*CLOSE*/
        .subpage .close a {
            transform: rotate(180deg);
            writing-mode: vertical-lr;
            text-orientation: mixed;
            padding: 7px 2px 7px 2px;
            margin-right: 15px;
            font-size: 1rem;
        }

        .subpage .close a:hover {
            transform: scale(1.1) rotate(180deg);
            color: white;
            border: 2px solid black;
            background-color: black;
            transition: transform 0.25s ease;
            font-weight: 600;
        }
    }