/* 
 * Main CSS file
 * This file imports all other CSS files
 */

/* Base styles */

/* 
 * CSS Variables
 * Define all CSS variables here
 */

:root {
    /* Colors */

    --color-text: #1645a1;
    --color-page: #fff;

   

    /* Spacing */
    --gutter: 52px;

    /* Layout */
    --container-max-width: 900px;
}

@media screen and (max-width: 869px) {

:root {
        --gutter: 16px
}
    }

/* 
 * Reset CSS
 * A minimal CSS reset
 */

/* Box sizing for all elements */

*, *::before, *::after {
    box-sizing: border-box;
}

/* Remove default margin and padding */

html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, figcaption, blockquote, dl, dd {
    margin: 0;
    padding: 0;
}

/* Set core body defaults */

body {
    min-height: 100vh;
    scroll-behavior: smooth;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
}

/* Remove list styles */

ul, ol {
    list-style: none;
}

/* Make images easier to work with */

img {
    max-width: 100%;
    display: block;
}

/* Inherit fonts for inputs and buttons */

input, button, textarea, select {
    font: inherit;
}

/* Remove all animations and transitions for people that prefer not to see them */

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Set default link styles */

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

p a {
    /* These are technically the same, but use both */
    overflow-wrap: break-word;
    word-wrap: break-word;

    -ms-word-break: break-all;
    /* This is the dangerous one in WebKit, as it breaks things wherever */
    word-break: break-all;
    /* Instead use this non-standard one: */
    word-break: break-word;

    /* Adds a hyphen where the word breaks, if supported (No Blink) */
    -ms-hyphens: auto;
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    hyphens: auto;
}

/*
 * Typography
 * Base typography styles
 */

/* Font Face Declarations */

@font-face {
    font-family: "LINE Seed Sans";
    src:
        url("../fonts/LINESeedSans_Th.ttf") format("truetype"),
        url("../fonts/LINESeedSans_Th.otf") format("opentype");
    font-weight: 100;
    font-style: normal;
    font-display: fallback;
}

@font-face {
    font-family: "LINE Seed Sans";
    src:
        url("../fonts/LINESeedSans_Rg.ttf") format("truetype"),
        url("../fonts/LINESeedSans_Rg.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: fallback;
}

@font-face {
    font-family: "LINE Seed Sans";
    src:
        url("../fonts/LINESeedSans_Bd.ttf") format("truetype"),
        url("../fonts/LINESeedSans_Bd.otf") format("opentype");
    font-weight: 700;
    font-style: normal;
    font-display: fallback;
}

@font-face {
    font-family: "LINE Seed Sans";
    src:
        url("../fonts/LINESeedSans_XBd.ttf") format("truetype"),
        url("../fonts/LINESeedSans_XBd.otf") format("opentype");
    font-weight: 800;
    font-style: normal;
    font-display: fallback;
}

@font-face {
    font-family: "LINE Seed Sans";
    src:
        url("../fonts/LINESeedSans_He.ttf") format("truetype"),
        url("../fonts/LINESeedSans_He.otf") format("opentype");
    font-weight: 900;
    font-style: normal;
    font-display: fallback;
}

:root {
    --font-family-sans:
        "LINE Seed Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-family-serif: Georgia, "Times New Roman", serif;
    --font-family-mono: SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

html {
    font-size: 62.5%;
}

@media screen and (max-width: 869px) {

html {
        font-size: 50%
}
    }

body {
    font-family: var(--font-family-sans);
    font-size: 1.8rem;
    line-height: 1.6;
    color: var(--color-text);
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    line-height: 1.2;
    font-weight: 600;
}

h1 {
    font-size: 3.4rem;
}

h2 {
    font-size: 2.4rem;
}

h3 {
    font-size: 2rem;
}

h4 {
    font-size: 2rem;
}

p {
    margin-bottom: 0.4em;
    line-height: 1.4em;
    font-size: 1.8rem;
}

p a {
        text-decoration: underline;
    }

a {
}

a:hover {
}

strong, b {
    font-weight: 600;
}

em, i {
    font-style: italic;
}

blockquote {
    margin: var(--space-6) 0;
    padding: var(--space-4) var(--space-6);
    border-left: 4px solid var(--color-gray);

    line-height: 1.2em;
    opacity: 0.8;
    font-size: 3rem;
    margin: 1em auto;
    text-align: center;

    padding: 0 1em;
}

blockquote em {
        font-size: 1.6rem;
    }

code {
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
    background-color: var(--color-gray-light);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--border-radius);
}

pre {
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
    background-color: var(--color-gray-light);
    padding: var(--space-4);
    margin: var(--space-4) 0;
    border-radius: var(--border-radius);
    overflow-x: auto;
}

pre code {
    padding: 0;
    background-color: transparent;
}

hr {
    border: 0;
    height: 1px;
    background-color: var(--color-gray);
    margin: var(--space-6) 0;
}

/* Lists */

ul, ol {
    margin: var(--space-4) 0;
    padding-left: var(--space-6);
}

ul {
    list-style-type: disc;
}

ol {
    list-style-type: decimal;
}

li {
    margin-bottom: var(--space-2);
}

figcaption {
    font-size: 1.6rem;
}

.credits {
    font-size: 1.2rem;
    text-align: right;
    opacity: 0.5;
    display: block;
}

hr {
    border-bottom: 1px solid var(--color-text);
    margin: 10px 0 var(--gutter) 0;
    opacity: 0.2;
}

/* Layout */

/* 
 * Grid
 * Basic grid layout system
 */

.container {
    width: 100%;
    max-width: var(--container-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--space-4);
}

/* Grid columns */

.col-1 {
    grid-column: span 1;
}

.col-2 {
    grid-column: span 2;
}

.col-3 {
    grid-column: span 3;
}

.col-4 {
    grid-column: span 4;
}

.col-5 {
    grid-column: span 5;
}

.col-6 {
    grid-column: span 6;
}

.col-7 {
    grid-column: span 7;
}

.col-8 {
    grid-column: span 8;
}

.col-9 {
    grid-column: span 9;
}

.col-10 {
    grid-column: span 10;
}

.col-11 {
    grid-column: span 11;
}

.col-12 {
    grid-column: span 12;
}

/* Responsive grid */

@media (max-width: 1024px) {
    .grid {
        gap: var(--space-3);
    }

    .col-lg-1 {
        grid-column: span 1;
    }
    .col-lg-2 {
        grid-column: span 2;
    }
    .col-lg-3 {
        grid-column: span 3;
    }
    .col-lg-4 {
        grid-column: span 4;
    }
    .col-lg-5 {
        grid-column: span 5;
    }
    .col-lg-6 {
        grid-column: span 6;
    }
    .col-lg-12 {
        grid-column: span 12;
    }
}

@media (max-width: 768px) {
    .grid {
        gap: var(--space-2);
    }

    .col-md-1 {
        grid-column: span 1;
    }
    .col-md-2 {
        grid-column: span 2;
    }
    .col-md-3 {
        grid-column: span 3;
    }
    .col-md-4 {
        grid-column: span 4;
    }
    .col-md-6 {
        grid-column: span 6;
    }
    .col-md-12 {
        grid-column: span 12;
    }
}

@media (max-width: 480px) {
    .col-sm-1 {
        grid-column: span 1;
    }
    .col-sm-2 {
        grid-column: span 2;
    }
    .col-sm-3 {
        grid-column: span 3;
    }
    .col-sm-4 {
        grid-column: span 4;
    }
    .col-sm-6 {
        grid-column: span 6;
    }
    .col-sm-12 {
        grid-column: span 12;
    }
}

/* Flexbox utilities */

.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.items-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.flex-wrap {
    flex-wrap: wrap;
}

/* Spacing utilities */

.mt-1 {
    margin-top: var(--space-1);
}

.mt-2 {
    margin-top: var(--space-2);
}

.mt-4 {
    margin-top: var(--space-4);
}

.mt-6 {
    margin-top: var(--space-6);
}

.mt-8 {
    margin-top: var(--space-8);
}

.mb-1 {
    margin-bottom: var(--space-1);
}

.mb-2 {
    margin-bottom: var(--space-2);
}

.mb-4 {
    margin-bottom: var(--space-4);
}

.mb-6 {
    margin-bottom: var(--space-6);
}

.mb-8 {
    margin-bottom: var(--space-8);
}

.ml-1 {
    margin-left: var(--space-1);
}

.ml-2 {
    margin-left: var(--space-2);
}

.ml-4 {
    margin-left: var(--space-4);
}

.mr-1 {
    margin-right: var(--space-1);
}

.mr-2 {
    margin-right: var(--space-2);
}

.mr-4 {
    margin-right: var(--space-4);
}

.p-1 {
    padding: var(--space-1);
}

.p-2 {
    padding: var(--space-2);
}

.p-4 {
    padding: var(--space-4);
}

.p-6 {
    padding: var(--space-6);
}

/* 
 * Header
 * Site header styles
 */

.header {
    display: grid;
    grid-template-columns: 1fr 3fr 1fr;

    font-size: 2.2rem;
    font-weight: 600;
}

@media screen and (max-width: 869px) {

.header {
        width: 100%;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;

        position: fixed;
        top: 0px;
        left: 0px;
        z-index: 400
}
    }

.header .logo {
        position: fixed;
        top: 0px;
        left: 0px;
        z-index: 300;
        padding: var(--gutter);
    }

@media screen and (max-width: 869px) {

.header .logo {
            position: relative;
            top: unset;
            left: unset
    }
        }

.header .options {
        position: absolute;
        top: 0px;
        right: 0px;

        z-index: 400;
        padding: var(--gutter);

        display: flex;
        flex-direction: row;
        justify-content: flex-end;
        align-items: center;
        gap: 20px;
    }

@media screen and (max-width: 869px) {

.header .options {
            width: auto;
            position: relative;
            top: unset;
            left: unset
    }

            .header .options .languages {
                display: none;
            }
                .header .options .social a {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 28px;
                    height: 28px;
                }
        }

/* 
 * Footer
 * Site footer styles
 */

.footer {
    margin-top: auto;
    padding: var(--gutter);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

@media screen and (max-width: 869px) {

.footer {
        flex-wrap: wrap;
        gap: var(--gutter)
}
    }

body.nav-open .footer {
        position: fixed;
        bottom: 0px;
        left: 0px;
        width: 100%;
        z-index: 800;
    }

@media screen and (max-width: 869px) {

.footer .copyright {
            order: 2
    }
        }

.footer p {
        font-size: 1.4rem;
    }

.footer {
    font-size: 1.4rem;
}

.footer .legal-menu {
        display: flex;
        flex-direction: row;
        gap: 20px;
        justify-content: center;
        align-items: center;

        list-style-type: none;
    }

@media screen and (max-width: 869px) {

.footer .legal-menu {
            flex: 1
    }
        }

/* 
 * Main
 * Main content area styles
 */

body {
    color: var(--color-text, inherit);
    background-color: var(--color-page, inherit);

    display: flex;
    flex-direction: column;
}

main {
    /* Inherit colors from body */
    color: inherit;
    background-color: inherit;
}

article.default-page {
    max-width: 800px;
    margin: 0 auto;
    margin-top: 200px;
}

article.default-page .page-header h1.page-title {
            font-size: 3rem;
            text-align: center;
        }

@media screen and (max-width: 869px) {

article.default-page .page-header h1.page-title {
                font-size: 3rem
        }
            }

article.default-page .page-content p {
            text-align: center;
        }

@media screen and (max-width: 869px) {

article.default-page {
        margin-top: 72px;
        padding: var(--gutter)
}
    }

/**
 * Figma Layout Plugin CSS
 * 
 * Stile für die Darstellung des Figma Layout Blocks im Panel
 */

.figma-element video {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

.k-block-type-figma-layout {
    padding: 1rem;
    background-color: #f7f7f7;
    border-radius: 4px;
}

.k-block-type-figma-layout-preview {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.k-block-type-figma-layout-preview-image {
    max-width: 100%;
    height: auto;
    margin-bottom: 0.5rem;
}

.k-block-type-figma-layout-preview-info {
    font-size: 0.875rem;
    color: #777;
}

.k-block-type-figma-layout-error {
    color: #c00;
    font-weight: bold;
    padding: 0.5rem;
    background-color: #fee;
    border-radius: 4px;
}

/* Stile für die Frontendausgabe */

.figma-layout {
    position: relative;
    width: 100%;
    height: auto;
}

.figma-frame {
    position: relative;
    width: 100%;
    height: auto;
}

@media screen and (max-width: 869px) {

.figma-frame {
        padding: 0 !important;
        height: auto !important;
        display: flex;
        flex-direction: column-reverse;
        gap: var(--gutter)
}
    }

.figma-element {
    overflow: visible;
}

@media screen and (max-width: 869px) {

.figma-element {
        padding: 0 var(--gutter);
        overflow: visible !important;

        position: relative !important;
        top: unset !important;
        left: unset !important;
        width: 100% !important;
        height: auto !important
}
    }

.figma-element img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media screen and (max-width: 869px) {

.figma-element img {
        width: 100% !important;
        height: auto !important
}
    }

/* Video-Stile */

.figma-video {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

.figma-video-element {
    width: 100%;
    height: 100%;
    min-height: 100%; /* safari fix */
    object-fit: cover;
    display: block;
}

/* Components */

/* 
 * Buttons
 * Button component styles
 */

.button {
    display: inline-block;
    padding: var(--space-2) var(--space-4);
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--border-radius);
    font-size: var(--font-size-md);
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.button:hover {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

.button:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.button:active {
    transform: translateY(1px);
}

/* Button variants */

.button-secondary {
    background-color: var(--color-gray-dark);
}

.button-secondary:hover {
    background-color: var(--color-black);
}

.button-outline {
    background-color: transparent;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}

.button-outline:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.button-text {
    background-color: transparent;
    color: var(--color-primary);
    padding: var(--space-2) 0;
}

.button-text:hover {
    background-color: transparent;
    color: var(--color-secondary);
    text-decoration: underline;
}

/* Button sizes */

.button-sm {
    padding: var(--space-1) var(--space-2);
    font-size: var(--font-size-sm);
}

.button-lg {
    padding: var(--space-3) var(--space-6);
    font-size: var(--font-size-lg);
}

/* Button with icon */

.button-icon {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.button-icon svg {
    width: 1em;
    height: 1em;
}

/* 
 * Navigation
 * Navigation component styles
 */

.menu-toggle {
    padding: var(--gutter);
    position: relative;
    z-index: 140;
    display: none;
}

.menu-toggle i {
        pointer-events: none;
        width: 28px;
        height: 28px;
        display: flex;
    }

.menu-toggle i.close {
        display: none;
    }

.menu-toggle i.burger {
        display: flex;
    }

.menu-toggle svg path, .menu-toggle svg rect, .menu-toggle svg circle {
            fill: var(--color-text);
        }

@media screen and (max-width: 869px) {

.menu-toggle {
        display: flex
}
    }

.menu-toggle[aria-expanded="true"] i.close {
            display: flex;
        }

.menu-toggle[aria-expanded="true"] i.burger {
            display: none;
        }

nav.menu {
    width: 100%;
    position: absolute;
    z-index: 200;

    flex: 1;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

nav.menu ul.main-menu {
        list-style-type: none;
        display: flex;
        flex-direction: row;
        gap: 20px;
    }

@media screen and (max-width: 869px) {

nav.menu ul.main-menu {
            align-items: center;
            justify-content: center;
            flex-direction: column;
            flex: 1
    }
        }

nav.menu ul.main-menu li {
            display: flex;
        }

nav.menu ul.main-menu a {
            position: relative;
            padding: var(--gutter) 0;
            position: relative;
        }

@media screen and (max-width: 869px) {

nav.menu ul.main-menu a {
                opacity: 0.5;
                padding: 0;
                font-size: 10vw
        }
            }

nav.menu ul.main-menu a span {
                /*
            text-shadow:
                var(--color-page) 4px 0px 0px,
                var(--color-page) 3.87565px 0.989616px 0px,
                var(--color-page) 3.51033px 1.9177px 0px,
                var(--color-page) 2.92676px 2.72656px 0px,
                var(--color-page) 2.16121px 3.36588px 0px,
                var(--color-page) 1.26129px 3.79594px 0px,
                var(--color-page) 0.282949px 3.98998px 0px,
                var(--color-page) -0.712984px 3.93594px 0px,
                var(--color-page) -1.66459px 3.63719px 0px,
                var(--color-page) -2.51269px 3.11229px 0px,
                var(--color-page) -3.20457px 2.39389px 0px,
                var(--color-page) -3.69721px 1.52664px 0px,
                var(--color-page) -3.95997px 0.56448px 0px,
                var(--color-page) -3.97652px -0.432781px 0px,
                var(--color-page) -3.74583px -1.40313px 0px,
                var(--color-page) -3.28224px -2.28625px 0px,
                var(--color-page) -2.61457px -3.02721px 0px,
                var(--color-page) -1.78435px -3.57996px 0px,
                var(--color-page) -0.843183px -3.91012px 0px,
                var(--color-page) 0.150409px -3.99717px 0px,
                var(--color-page) 1.13465px -3.8357px 0px,
                var(--color-page) 2.04834px -3.43574px 0px,
                var(--color-page) 2.83468px -2.82216px 0px,
                var(--color-page) 3.44477px -2.03312px 0px,
                var(--color-page) 3.84068px -1.11766px 0px,
                var(--color-page) 3.9978px -0.132717px 0px;
                */
            }

nav.menu ul.main-menu a svg {
                width: 64px;
                height: 64px;
                position: absolute;
                z-index: -1;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                opacity: 0;
            }

nav.menu ul.main-menu a svg path {
                    fill: var(--color-text);
                }

@media screen and (max-width: 869px) {

nav.menu ul.main-menu a svg {
                    width: 96px;
                    height: 96px
            }

                    nav.menu ul.main-menu a svg path {
                        stroke-width: 2px;
                    }
                }

nav.menu ul.main-menu a[aria-current="page"] {
            /*
        &:before {
            content: "";
            position: absolute;
            z-index: -1;
            bottom: -2px;
            left: 0px;
            width: 100%;
            height: 2px;

            background-color: var(--color-text);
            transform: rotate(-1deg);
        }
            */

            opacity: 1;
        }

nav.menu ul.main-menu a[aria-current="page"] svg {
                opacity: 0.2;
            }

nav.menu ul.legal-menu {
        list-style-type: none;
        display: none;
        flex-direction: row;
        align-items: center;
        gap: 10px;
    }

nav.menu ul.legal-menu li {
            display: flex;
        }

nav.menu ul.legal-menu a {
            font-weight: 400;
        }

@media screen and (max-width: 869px) {

nav.menu ul.legal-menu {
            padding: var(--gutter);
            flex-direction: row;
            justify-content: center;
            flex-wrap: wrap;
            display: flex
    }
        }

@media screen and (max-width: 869px) {

nav.menu {
        display: none;

        z-index: 50;

        min-height: 100vh;
        flex-direction: column;

        justify-content: flex-end;
        position: absolute;
        top: 0px;
        left: 0;
        right: 0;

        z-index: 100;

        background-color: var(--color-page)
}

        nav.menu.is-open {
            display: flex;
        }
    }

@media screen and (max-width: 869px) {
        nav.menu a[aria-current="page"] {
            /*
            color: var(--color-page);
            padding: 0 20px;
            &:before {
                content: "";
                position: absolute;
                z-index: -1;
                top: 0px;
                left: 0px;
                width: 100%;
                height: 100%;
                border-radius: 2px;

                background-color: var(--color-text);
                transform: rotate(-1deg);
            }
                */
        }
    }

.languages ul {
        list-style-type: none;
        display: flex;
        flex-direction: row;
        gap: 5px;
    }

.languages ul li {
            text-transform: uppercase;
            font-size: 1.4rem;
            font-weight: 400;
            opacity: 0.4;
        }

.languages ul li.active {
                opacity: 1;
            }

@media screen and (max-width: 869px) {

.languages {
        order: 3
}
    }

/* 
 * Works
 * Works grid and list styles
 */

/* Works grid */

.works-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gutter);
}

@media screen and (max-width: 869px) {

.works-grid {
        grid-template-columns: 1fr;
        gap: var(--gutter)
}
    }

/* Works columns layout */

.works-columns {
    display: flex;
    justify-content: space-between;
    row-gap: 0px;
    column-gap: var(--gutter);
    padding: 0 var(--gutter);
}

@media screen and (max-width: 869px) {

.works-columns {
        margin-top: 1.13465px;
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--gutter)
}
    }

.works-grid-column {
    flex: 1;
    display: flex;
    flex-direction: column;

    padding: var(--gutter) 0;
}

.works-grid-column.works-grid-column-left .work-caption {
            text-align: right;
        }

.works-grid-column.works-grid-column-right .work-caption {
            text-align: left;
        }

@media screen and (max-width: 869px) {

.works-grid-column {
        display: contents
}
    }

.work-item {
    position: relative;
    will-change: transform;
    transform-style: preserve-3d;

    display: flex;
    align-items: center;
    justify-content: center;

    opacity: 0;

    margin-left: calc(var(--shift) * 0.5 * 1px);
}

.work-item.lax {
    }

.work-item {

    border-top: calc(var(--depth) * var(--depth) * var(--depth) * var(--depth) * var(--depth) * 75px) solid transparent;
    border-bottom: calc(var(--depth) * var(--depth) * var(--depth) * var(--depth) * var(--depth) * 75px) solid
        transparent;
}

@media screen and (max-width: 869px) {

.work-item {
        border: none;
        order: var(--original-index)
}
            .work-item:nth-child(even) .work-caption {
                text-align: left;
            }
            .work-item:nth-child(odd) .work-caption {
                text-align: right;
            }
    }

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

.work-figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: var(--border-radius);

    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
}

.work-figure.portrait .work-image-container, .work-figure.portrait img {
            max-height: 60vh;
        }

.work-figure.square .work-image-container, .work-figure.square img {
            max-height: 60vh;
        }

.work-figure.landscape .work-image-container, .work-figure.landscape img {
            max-height: 50vh;
        }

.work-image-container {
    position: relative;
    width: auto; /* keeps aspect ratio */
    height: auto; /* prevents distortion */
    border-radius: var(--border-radius);
    width: 100%;
    height: 100%;
    /*    background-color: rgba(0, 0, 0, 0.05); */
}

.work-image {
    max-height: 100%;
    object-fit: contain;
    width: auto; /* keeps aspect ratio */
    height: auto; /* prevents distortion */
    display: block;
}

.work-image.loaded {
    /*
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity 0.6s ease-out,
        transform 0.8s ease-out;
        */
}

.work-caption h2 {
        padding: 0 1em;
        margin-top: 14px;
        font-size: 1.6rem;
        font-weight: normal;

        /* color: var(--color-text); */
    }

/* Works intro */

.works-intro {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
    padding-top: 120px;
    padding-bottom: 100px;

    text-align: center;
}

.works-title {
    font-size: var(--font-size-4xl);
    margin-bottom: var(--gutter);
}

.works-text {
    font-size: var(--font-size-lg);
}

/* 
 * Work
 * Individual work/project page styles
 */

article.work .work-hero {
        width: 100%;
        display: flex;
        height: 100vh;
    }

@media screen and (max-width: 869px) {

article.work .work-hero {
            padding-top: 72px;
            flex-direction: column;
            height: auto;
            gap: var(--gutter)
    }
        }

article.work .work-hero .work-hero-img {
            flex: 1;
        }

article.work .work-hero .work-hero-img img {
                width: 100%;
                height: 100%;
                object-fit: contain;
                object-position: center;
            }

@media screen and (max-width: 869px) {

article.work .work-hero .work-hero-img img {
                    max-height: 50vh
            }
                }

article.work .work-hero .work-hero-img figcaption {
                transform: translateY(-100%);
                font-size: 1.4rem;
                padding: 1em;
            }

article.work .work-hero .work-hero-video {
            flex: 1;
            flex-basis: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            padding-left: var(--gutter);
            height: auto;
        }

@media screen and (max-width: 869px) {

article.work .work-hero .work-hero-video {
                padding: var(--gutter)
        }
            }

article.work .work-hero .work-hero-video {

            height: auto;
            padding-left: var(--gutter);

            display: flex;
            align-items: center;
            justify-content: stretch;
}

article.work .work-hero .work-hero-video video {
                width: 100%;
                height: auto;
            }

article.work .work-hero .work-hero-video video:after {
                    content: "X";
                    display: block;
                }

article.work .work-hero .work-cover {
        }

article.work .work-hero .work-intro {
            flex: 1;
            min-width: 400px;
            display: flex;

            align-items: center;
            justify-content: center;
        }

@media screen and (max-width: 869px) {

article.work .work-hero .work-intro {
                min-width: 100px
        }
            }

article.work .work-hero .work-intro .wrapper {
                position: relative;
                width: 75%;
                max-width: 720px;
                display: flex;
                flex-direction: column;
                align-items: flex-start;
                justify-content: center;
            }

@media screen and (max-width: 869px) {

article.work .work-hero .work-intro .wrapper {
                    width: 100%;
                    padding: var(--gutter)
            }
                }

@media screen and (max-height: 840px) {

article.work .work-hero .work-intro .wrapper {
                    align-items: stretch
            }
                }

article.work .work-hero .work-intro .work-meta {
                position: absolute;
                top: 0px;
                right: 0px;
                transform: translateY(-100%);
                text-align: right;
                opacity: 0.75;
                font-size: 1.6rem;
            }

@media screen and (max-width: 869px) {

article.work .work-hero .work-intro .work-meta {
                    width: 100%;
                    position: relative;
                    top: unset;
                    right: unset;
                    transform: none;
                    order: 2
            }
                }

@media screen and (max-height: 840px) {

article.work .work-hero .work-intro .work-meta {
                    position: relative;
                    transform: none
            }
                }

article.work .work-hero .work-intro .work-date {
                font-weight: 600;
            }

article.work .work-hero .work-intro .work-materials .work-material-list {
                    display: flex;
                    flex-direction: column;

                    list-style-type: none;
                    line-height: 1.4em;
                }

article.work .work-hero .work-intro .work-credits .credits-list {
                    display: flex;
                    flex-direction: column;

                    list-style-type: none;
                    line-height: 1.4em;
                }

article.work .work-hero .work-intro .work-section-title {
                font-size: 4rem;
                margin-bottom: 0.3em;
            }

@media screen and (max-width: 869px) {

article.work .work-hero .work-intro .work-section-title {
                    margin-top: 0;
                    font-size: 3rem
            }
                }

@media screen and (max-height: 840px) {

article.work .work-hero .work-intro .work-section-title {
                    margin-top: 0.5em;
                    font-size: 3rem
            }
                }

section.work-gallery {
    margin: 0 auto;
    margin-top: 10vh;
    max-width: var(--container-max-width);

    padding: var(--gutter);
}

section.work-gallery figure.gallery-item {
        max-width: var(--container-max-width);
        max-height: 80vh;

        display: flex;
        flex-direction: column;
    }

section.work-gallery figure.gallery-item a {
            display: flex;
        }

@media screen and (max-width: 869px) {

section.work-gallery figure.gallery-item {
            margin-left: 0px !important;
            margin-right: 0px !important;
    }
        }

section.work-gallery figure.gallery-item:nth-child(odd) {
            margin-right: calc(((100vw - var(--container-max-width) - var(--gutter))) * -1);

            align-items: flex-end;
        }

section.work-gallery figure.gallery-item:nth-child(odd) img, section.work-gallery figure.gallery-item:nth-child(odd) video {
                object-position: center right;
            }

section.work-gallery figure.gallery-item:nth-child(odd) figcaption {
                text-align: right;
                justify-content: flex-end;
            }

section.work-gallery figure.gallery-item:nth-child(even) {
            margin-left: calc(var(--gutter) * -1);
        }

section.work-gallery figure.gallery-item:nth-child(even) img, section.work-gallery figure.gallery-item:nth-child(even) video {
                object-position: center left;
            }

section.work-gallery figure.gallery-item .gallery-video-container {
            max-height: 80vh; /* limit total height */
            max-width: var(--container-max-width);

            display: flex;
            justify-content: center;
            align-items: center; /* center video inside the wrapper */
        }

section.work-gallery figure.gallery-item img, section.work-gallery figure.gallery-item video {
        }

section.work-gallery figure.gallery-item video {
            width: 100%;
            height: 100%;
        }

section.work-gallery figure.gallery-item {

        margin-bottom: var(--gutter);
}

section.work-gallery figcaption {
        padding-top: 10px;
        display: flex;
        flex-direction: row;
        gap: 0.25em;
        flex-wrap: wrap;
    }

section.work-gallery figcaption p {
            font-size: 1.6rem;
            opacity: 0.5;
        }

section.work-gallery figcaption .gallery-item-title {
            font-weight: 600;
        }

.work-navigation {
    width: 100%;
    padding: var(--gutter);

    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: var(--gutter);

    font-size: 1.6rem;
}

.work-navigation .work-next {
        margin-left: auto;
        text-align: right;
    }

@media screen and (max-width: 869px) {

.work-navigation {
        margin-top: var(--gutter)
}
    }

.work-external-link {
    width: 100%;
    padding: var(--gutter);
    display: flex;
    justify-content: center;
    margin: 4rem 0;
}

.work-external-link a.button {
        display: inline-block;
        padding: 1rem 2rem;
        background-color: var(--color-text, #000000);
        color: var(--color-page, #ffffff);
        text-decoration: none;
        border-radius: 4px;
        font-size: 1.6rem;
        transition: all 0.3s ease;
    }

.work-external-link a.button:hover {
            opacity: 0.8;
            transform: translateY(-2px);
        }

@media screen and (max-width: 869px) {

.work-external-link a.button {
            width: 100%;
            text-align: center
    }
        }

.cta-text {
    text-align: center;
}

.cta-text a {
        transform: rotate(-1deg);
        display: inline-flex;
        padding: 0.5em 0.7em;
        text-decoration: none;
        background-color: var(--color-text);
        color: var(--color-page);
    }

.lightbox {
    transition: all 0.5s ease-in-out;
    padding: var(--gutter);
}

.lightbox[aria-hidden="true"] {
        padding: 0;
        visibility: hidden;
        opacity: 0;
        width: 0;
        height: 0;
    }

.lightbox[aria-hidden="false"] {
        position: fixed;
        display: flex;
        justify-content: center;
        align-items: center;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: rgba(0, 0, 0, 0.8);
        opacity: 1;
        transition: opacity 0.4s ease;
        z-index: 1000;
        will-change: opacity;
        visibility: visibble;
    }

.lightbox .lightbox-content {
        width: 100%;
        height: 100%;
    }

.lightbox img {
        object-fit: contain;
        width: 100%;
        min-height: 100%; /* safari fix */
        height: 100%;
    }

.lightbox button {
        border: 0;
        background-color: transparent;
        color: #fff;
        font-size: 24px;
    }

.lightbox .lightbox-close {
        position: absolute;
        top: 0px;
        right: 0px;
    }

.lightbox .lightbox-prev {
        position: absolute;
        top: 50%;
        left: 0px;
    }

.lightbox .lightbox-next {
        position: absolute;
        top: 50%;
        right: 0px;
    }

.work-blocks {
    margin: var(--gutter) 0;
}

.work-blocks p {
        max-width: 800px;
        margin-left: auto;
        margin-right: auto;
    }

@media screen and (max-width: 869px) {

.work-blocks p {
            /*
            margin-left: var(--gutter);
            margin-right: var(--gutter);
            */
    }
        }

.work-subtext {
    margin: var(--gutter) 0;
}

.work-subtext p {
        max-width: 800px;
        margin-left: auto;
        margin-right: auto;
    }

@media screen and (max-width: 869px) {

.work-subtext p {
            margin-left: var(--gutter);
            margin-right: var(--gutter)
    }
        }

@media screen and (max-width: 869px) {

.work .work-blocks p {
            margin-left: var(--gutter);
            margin-right: var(--gutter)
    }
        }

/* Styles für den Columns-Block */

.column {
    grid-column: span var(--columns, 1);
}

.column h1, .column h2, .column h3 {
        margin-top: 0;
    }

.column h1, .column h2, .column h3 {
        text-align: center;
    }

.column h6 {
        /* hack for centering url on upcoming page */
        font-weight: normal;
        text-align: center;
    }

.grid {
}

.column {
    padding: 10px;
}

.blocks {
    min-height: 20px;
}

figure.gallery ul {
        list-style-type: none;
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: var(--gutter);
    }

figure.gallery ul li:first-child {
                transform: rotate(-1deg);
            }

figure.gallery ul li:nth-child(2) {
                transform: rotate(1deg);
            }

figure.gallery ul li:nth-child(3) {
                transform: rotate(2deg);
            }

/**
 * Video Player Component Styles
 */

/* Container für Video-Elemente */

figure.work-hero-video, figure.gallery-item, .gallery-video-container, .figma-video-element {
    position: relative; /* Für absolute Positionierung des Toggle-Buttons */
   
}

/* Mute/Unmute Toggle Button */

.video-mute-toggle {
    position: absolute; /* Position wird jetzt dynamisch per JS gesetzt */
    width: auto;

    z-index: 10;

    cursor: pointer;
    border: none;
    background-color: transparent;

    transform: translateY(110%);

    opacity: 0.5;
}

.video-mute-toggle:hover {
        opacity: 1;
    }

.video-mute-toggle {

    color: var(--color-text);
}

.video-mute-toggle svg {
        width: 20px;
        height: 20px;
    }

.video-mute-toggle svg path {
            fill: var(--color-text);
        }

.video-mute-toggle .mute, .video-mute-toggle .unmute {
        width: auto;
        display: flex;
        flex-direction: row-reverse;
        gap: 5px;
        justify-content: center;
        align-items: center;
    }

.video-mute-toggle span {
        display: flex;
        flex: 1;
        white-space: nowrap;
    }

.video-mute-toggle .unmute {
        display: none;
    }

.video-mute-toggle .mute {
    }

.video-mute-toggle.muted .unmute {
            display: flex;
        }

.video-mute-toggle.muted .mute {
            display: none;
        }

/* Hover-Effekt für den Toggle-Button */

.video-mute-toggle:hover {
}

/* Fokus-Stil für Barrierefreiheit */

.video-mute-toggle:focus {
}

article.exhibition .work-section, article.exhibition .work-section-main {
        margin-bottom: var(--gutter);
    }

article.exhibition .work-section-main .work-hero {
            margin-top: 5vh;
            width: 100%;
            display: flex;
            flex-direction: column;
        }

article.exhibition .work-section-main .work-hero .work-section-title {
                font-size: 5vw;
                text-align: center;

                /*  mix-blend-mode: difference; */

                /*    margin-bottom: -0.5em; */

                position: relative;
                z-index: 20;
            }

@media screen and (max-width: 869px) {

article.exhibition .work-section-main .work-hero .work-section-title {
                    font-size: 2.8rem
            }
                }

article.exhibition .work-section-main .work-hero .work-hero-img {
                height: 75vh;
                padding: 0 var(--gutter);
            }

@media screen and (max-width: 869px) {

article.exhibition .work-section-main .work-hero .work-hero-img {
                    height: 50vh
            }
                }

article.exhibition .work-section-main .work-hero .work-hero-img img {
                    width: 100%;
                    height: 100%;
                    object-fit: contain;
                    object-position: center;
                }

article.exhibition .work-section-main .work-hero .work-hero-video {
                height: auto;
                padding-left: var(--gutter);

                display: flex;
                align-items: center;
                justify-content: stretch;
            }

article.exhibition .work-section-main .work-hero .work-hero-video video {
                    width: 100%;
                    height: auto;
                }

article.exhibition .work-section-main .work-hero .work-cover {
            }

article.exhibition .work-section-main .work-hero .work-intro {
                margin-top: var(--gutter);
                flex: 1;

                display: flex;

                align-items: center;
                justify-content: center;
            }

article.exhibition .work-section-main .work-hero .work-intro .wrapper {
                    position: relative;
                    width: 75%;
                    max-width: 720px;
                    display: flex;
                    gap: 10px;
                    flex-direction: column;
                    align-items: flex-start;
                    justify-content: center;
                }

@media screen and (max-width: 869px) {

article.exhibition .work-section-main .work-hero .work-intro .wrapper {
                        width: 100%;
                        padding: var(--gutter)
                }
                    }

article.exhibition .work-section-main .work-hero .work-intro .work-meta {
                    display: flex;
                    flex-direction: row;
                    margin: var(--gutter) auto;

                    gap: 0.5em;
                    order: 2;
                    text-align: center;

                    opacity: 0.75;
                    font-size: 1.6rem;
                }

article.exhibition .work-section-main .work-hero .work-intro .work-date {
                    font-weight: 600;
                }

article.exhibition .work-section-main .work-hero .work-intro .work-materials .work-material-list {
                        display: flex;
                        flex-direction: row;
                        gap: 0.5em;

                        list-style-type: none;
                    }

article.exhibition .work-section:nth-child(odd) .work-hero-img {
                order: 2;
            }

article.exhibition .work-section:nth-child(odd) .work-intro {
                order: 1;
            }

article.exhibition .work-section .work-hero {
            width: 100%;
            display: flex;
            height: 100vh;
        }

@media screen and (max-width: 869px) {

article.exhibition .work-section .work-hero {
                padding-top: 72px;
                flex-direction: column;
                height: auto;
                gap: var(--gutter)
        }
            }

article.exhibition .work-section .work-hero .work-hero-img {
                flex: 1;
            }

article.exhibition .work-section .work-hero .work-hero-img img {
                    width: 100%;
                    height: 100%;
                    object-fit: contain;
                    object-position: center;
                }

article.exhibition .work-section .work-hero .work-hero-video {
                flex: 1;
                flex-basis: 50%;
                padding-left: var(--gutter);
            }

article.exhibition .work-section .work-hero .work-hero-video video {
                    width: 100%;
                    height: 100%;
                    object-fit: contain;
                    object-position: center;
                }

article.exhibition .work-section .work-hero .work-cover {
            }

article.exhibition .work-section .work-hero .work-intro {
                flex: 1;

                display: flex;

                align-items: center;
                justify-content: center;
            }

article.exhibition .work-section .work-hero .work-intro .wrapper {
                    position: relative;
                    width: 75%;
                    max-width: 720px;
                    display: flex;
                    flex-direction: column;
                    align-items: flex-start;
                    justify-content: center;
                }

@media screen and (max-width: 869px) {

article.exhibition .work-section .work-hero .work-intro .wrapper {
                        width: 100%;
                        padding: var(--gutter)
                }
                    }

article.exhibition .work-section .work-hero .work-intro .work-meta {
                    position: absolute;
                    top: 0px;
                    right: 0px;
                    transform: translateY(-100%);
                    text-align: right;
                    opacity: 0.75;
                    font-size: 1.6rem;
                }

article.exhibition .work-section .work-hero .work-intro .work-date {
                    font-weight: 600;
                }

article.exhibition .work-section .work-hero .work-intro .work-materials .work-material-list {
                        display: flex;
                        flex-direction: column;

                        list-style-type: none;
                    }

article.exhibition .work-section .work-hero .work-intro .work-section-title {
                    font-size: 2rem;
                    margin-bottom: 0.3em;
                }
