========================================

   MIMICRY - OPTIMIZED CSS

   PageSpeed Optimized Version

   ======================================== */



/* ========================================

   FONT LOADING - FIX: font-display swap

   ======================================== */

@font-face {

    font-family: 'Inter';

    src: url('https://res.cloudinary.com/dr4tcgjlo/raw/upload/v1771242197/Inter_zbewgm.woff2') format('woff2');

    font-display: swap; /* CHANGED from optional to swap for better performance */

    font-weight: 400;

    font-style: normal;

}

.model-container img {
    object-fit: contain; /* 'contain' ist oft besser als 'scale-down' für Logos/Portraits */
    width: 100%;
    height: auto;        /* WICHTIG: Erlaubt dem Bild, seine Proportionen zu halten */
    max-height: 300px;   /* Hier die gewünschte maximale Höhe eintragen */
    border-radius: 4px;
    display: block;
    margin: 0 auto;      /* Zentriert das Bild horizontal */
}


.mimicry-list {
  list-style: disc; /* klassische Bullets */
  padding-left: 20px; /* Abstand für Bullets */
  margin: 0;
  max-width: 500px;
}

.mimicry-list li {
  margin-bottom: 12px;
  font-size: 1.3rem;
  line-height: 1.5;
}


/* ========================================

   IMAGES - Responsive handling

   ======================================== */

img {

    object-fit: cover;

    height: 100%;

    width: 100%;

}

.abstand-projekte{
   height: 30px;
   }
   



/* ========================================

   CSS VARIABLES

   ======================================== */

:root {

    --bg-color: #fff;

    --text-color: #0a0a0a;

    --nav-bg: rgba(255, 255, 255, 0.467);

    --border-color: rgba(0, 0, 0, 0.1);

}



html {

    height: -webkit-fill-available;

    overflow-x: hidden;

    width: 100%;

}



/* ========================================

   CUSTOM ELEMENTS - FIX: Reserve space

   ======================================== */

mimicry-header {

    display: block;

    min-height: 60px; /* CHANGED from 100px to match navbar */

    background-color: var(--nav-bg);

}



mimicry-footer {

    display: block;

    min-height: 405px;

}



/* ========================================

   DARK MODE

   ======================================== */

body.dark-mode {

    --bg-color: #0a0a0a;

    --text-color: #fff;

    --nav-bg: rgba(15, 15, 15, 0.7);

    --border-color: rgba(255, 255, 255, 0.1);

}



/* ========================================

   BASE STYLES

   ======================================== */

* {

    box-sizing: border-box;

}



body, p, h1, h2, h3, h4, h5, h6 {
    margin: 0 !important;
    font-family: "Inter", sans-serif !important;
    font-weight: 300; /* !important hier entfernt, um Flexibilität zu behalten */
    background-color: transparent;
    position: relative;
    z-index: 9;
    color: var(--text-color);
    transition: background-color 0.3s, color 0.3s;
}

/* H1 generell dünn halten */
h1 {
    font-weight: 200 !important;
}

/* H2 darf für die Lesbarkeit etwas dicker bleiben */
h2 {
    font-weight: 500 !important;
    margin-bottom: 27px;
    overflow-wrap: break-word;
    font-size: 1.6rem;
}
   



body {

    margin: 0;

    padding: 0;

    background-color: var(--bg-color);

    color: var(--text-color);

    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    overflow-x: hidden;

    -webkit-font-smoothing: antialiased;

    width: 100%;

    position: relative;

}



p {

    font-size: 1.5rem;

}







/* ========================================

   CONTENT PAGES

   ======================================== */

#im, #datenschutz {

    padding: 130px 30px 30px 30px;

    text-align: justify;

}



/* ========================================

   ACCESSIBILITY

   ======================================== */

a:focus-visible,

button:focus-visible {

    outline: 2px solid #007bff;

    outline-offset: 4px;

}

/* ========================================
   FIX: BADGE WRAPPING MOBILE
   ======================================== */


/* ========================================

   DIVIDERS

   ======================================== */

hr {

    width: 95%;

    border: 0;

    border-top: 1px solid var(--border-color);

    margin: 10px auto;

    display: block;

}



/* ========================================

   LAYOUT CONTAINERS

   ======================================== */

.page-wrapper, .page-wrapper-pr {

    max-width: 1800px;

    margin: 0 auto;

    position: relative;

    width: 100%;

    overflow-x: hidden; /* ADDED: Prevent horizontal scroll */

}



/* ========================================

   NAVIGATION - FIX: Feste Höhe für CLS

   ======================================== */

.navbar {

    position: fixed;

    top: 0;

    left: 0;

    right: 0;

    height: 90px; /* CHANGED from min-height to height for CLS fix */

    z-index: 1000;

    background-color: var(--nav-bg);

    backdrop-filter: blur(10px);

    -webkit-backdrop-filter: blur(10px);

    border-bottom: 1px solid var(--border-color);

    display: flex;

    justify-content: center;

}



.nav-inner {

    width: 100%;

    max-width: 1600px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 15px 30px;

}



.nav-right-area {

    display: flex;

    align-items: center;

}



.nav-links {

    display: flex;

    gap: 20px;

    list-style: none;

    padding: 0;

    margin: 0;

}



.nav-links a {

    text-decoration: none;

    color: var(--text-color);

    font-weight: 500;

    font-size: 15px;

}



.theme-toggle {

    background: none;

    border: 1px solid var(--text-color);

    color: var(--text-color);

    width: 65px;

    border-radius: 20px;

    cursor: pointer;

    font-size: 12px;

    font-weight: 600;

    text-transform: uppercase;

    margin-left: 20px;

    text-align: center;

    padding: 5px 0;

}



/* Der Container für die Buttons */

.nav-wrapper {

    padding: 40px 0;

    margin-top: 50px;

    display: flex;

    gap: 10px;

    justify-content: space-between;

    align-items: center;

    width: 100%;

}



/* Die Buttons (Kopie deines CTA-Styles) */

.nav-link {

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

    color: var(--bg-color);

    border: 1px solid var(--text-color);

    padding: 5px 15px;

    border-radius: 20px;

    cursor: pointer;

    font-size: 12px;

    font-weight: 600;

    text-transform: uppercase;

    text-decoration: none;

    display: inline-flex;

    align-items: center;

    white-space: nowrap;

    transition: all 0.3s ease;

}



/* Hover-Effekt: Hintergrund wird transparent */

.nav-link:hover {

    background-color: transparent;

    color: var(--text-color);

}



/* Pfeil-Abstände für Flexbox */

.prev::before {

    content: "←";

    margin-right: 8px;

}



.next::after {

    content: "→";

    margin-left: 8px;

}



/* Verhindert, dass der "Weiter"-Button nach links rutscht, 

   wenn kein "Zurück"-Button da ist */

.nav-wrapper span {

    visibility: display;

}


/* Media Query für Mobilgeräte (max 768px) */
@media (max-width: 768px) {
    .nav-wrapper {
        padding: 20px 0; /* Weniger Platz oben/unten */
        margin-top: 20px;
        width: 100%;
        display: flex !important;
        gap: 5px;        /* Engerer Abstand zwischen den Buttons */
    }

    .nav-link {
        padding: 8px 12px; /* Etwas kompakter */
        font-size: 11px; 
        display: block !important;/* Schrift leicht verkleinern */
    }

   .abstand{
     position: relative;
     margin: 0px;
     display: flex;
     padding: 0px;
     height: 10px;
         }
      
}

.cta-button {

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

    color: var(--bg-color);

    border: 1px solid var(--text-color);

    padding: 5px 15px;

    border-radius: 20px;

    cursor: pointer;

    font-size: 12px;

    font-weight: 600;

    text-transform: uppercase;

    text-decoration: none;

    margin-left: 25px;

    display: inline-flex;

    align-items: center;

    white-space: nowrap;

    transition: all 0.3s ease;

}



.cta-button:hover {

    background-color: transparent;

    color: var(--text-color);

}



/* ========================================

   MOBILE MENU

   ======================================== */

.burger-menu {

    display: none;

    flex-direction: column;

    gap: 6px;

    background: none;

    border: none;

    cursor: pointer;

    z-index: 1001;

    padding: 10px;

    margin-left: 20px;

}



.burger-menu span {

    display: block;

    width: 25px;

    height: 2px;

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

    transition: all 0.3s ease;

}



.mobile-overlay {

    position: fixed;

    top: 170px;

    left: 0;

    right: 0;

    bottom: 0;

    background-color: var(--bg-color);

    backdrop-filter: blur(20px);

    -webkit-backdrop-filter: blur(20px);

    display: flex;

    justify-content: center;

    align-items: center;

    z-index: 999;

    opacity: 0;

    pointer-events: none;

    transition: opacity 0.4s ease;

}



.animated-logo {

    min-width: 80px !important;

    min-height: 80px !important;

    padding: 5px;

}



.mobile-overlay.is-open {

    opacity: 1;

    pointer-events: all;

}



.mobile-links {

    list-style: none;

    background-color: var(--bg-color);

    width: 100%;

    padding: 0;

    text-align: center;

}



.mobile-links li {

    margin: 30px 0;

}



.mobile-links a {

    text-decoration: none;

    color: var(--text-color);

    font-size: 32px;

    font-weight: 400;

}



/* ========================================

   LOGO ANIMATION

   ======================================== */

.logo-circle {

    display: flex !important;

    justify-content: center !important;

    align-items: center !important;

    width: 70px !important;

    height: 70px !important;

    text-decoration: none !important;

    transition: all 0.4s ease !important;

}



svg.animated-logo {

    width: 120px;

    overflow: visible;

}



#Winkel-oben, #Winkel-unten, #Typo {

    transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.3s ease;

    transform-origin: center;

    fill: var(--text-color);

}



.logo-circle:hover #Winkel-oben {

    transform: translate(1px, -2px);

}



.logo-circle:hover #Winkel-unten {

    transform: translate(-3px, 2px);

}



.logo-circle:hover #Typo {

    transform: translate(2px, 3px);

}



/* ========================================

   HERO SECTIONS - FIX: Feste Dimensionen

   ======================================== */

.hero {

    display: flex;

    padding: 30px 30px 30px 30px;

    gap: 30px;

    align-items: center;

    flex-direction: column-reverse;

}

.hero-story {

    display: flex;

    padding: 60px 30px 30px 30px;

    gap: 30px;

    align-items: center;

    flex-direction: column-reverse;

}



.hero {

    min-height: 60vh;

    contain-intrinsic-size: 0 600px;

    display: flex;

    padding: 50px 30px 30px 30px;

    flex-direction: column-reverse;

    justify-content: flex-end;

    align-items: center;

    width: 100%; /* ADDED */

    max-width: 100%; /* ADDED */

    overflow: hidden; /* ADDED */

}



.hero-story {


    justify-content: flex-end;

}



.hero-text {

    width: 100%;

    font-weight: 200;

    min-height: 100px; /* Reserve space */

    text-align: left;

    contain: layout;

    margin-bottom: 30px; /* ADDED: Fester Abstand */

}



.hero-headline {
    font-size: clamp(32px, 5vw, 64px);
    font-weight: 200 !important; /* Extra dünn für den modernen Look */
    min-height: 230px;
    line-height: 1.1; /* Etwas engerer Zeilenabstand sieht bei großen Headlines edler aus */
    margin: 0 0 20px 0;
}



/* ========================================

   VIDEO CONTAINERS - FIX: Aspect Ratio

   ======================================== */

.hero-video-container, .hero-video-container-port {

    display: flex;

    width: 100%;

    overflow-x: auto;

    gap: 10px;

}



/* FIX: Video Wrapper with proper containment */

.video-wrapper {

    position: relative;

    display: inline-block;

    contain: layout;

    width: 100%;

    height: 100%;

}



.video-wrapper video {

    display: block;

    contain: layout;

    width: 100%;

    height: auto;

}



.video-wrapper::after {

    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background: radial-gradient(

        circle at center,

        rgba(0,0,0,0) 55%,

        rgba(0,0,0,0.6) 100%

    );

}



.hero-video-container {

    display: grid;

    /* Erzwingt zwei exakt gleiche Spalten */

    grid-template-columns: repeat(2, 1fr); 

    gap: 20px;

    width: 100%;

    /* Verhindert, dass Safari die Boxen vertikal versetzt */

    align-items: start; 

}



.video-box {

    width: 100%;

    /* Safari Fix: aspect-ratio benötigt oft ein Block-Display */

    display: block;

    aspect-ratio: 16 / 9;

    position: relative;

    overflow: hidden;

    background-color: #000; /* Schwarzer Hintergrund für Ladezeiten */

}



/* Um die Videos innerhalb der Boxen perfekt zu füllen */

.video-box video, 

.video-box img {

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

}

.hero-video-container-port {

    gap: 30px;

}



/* ========================================

   VIDEO BOXES - FIX: Feste Aspect Ratios

   ======================================== */

.video-box, .video-box2, .video-box-port, .video-box-pr {

    background-color: #f6f6f6;

    border-radius: 4px;

    overflow: hidden;

    position: relative;

}









.video-box2 {

    flex: 1;

    width: 100%;

    aspect-ratio: 4 / 3;

    background-color: #f6f6f6;

    position: relative; /* ADDED */

}



.video-box-port {

    flex: 1;

    min-width: 180px;

    aspect-ratio: 3 / 1;

    background-color: #f6f6f6;

    position: relative; /* ADDED */

}



.video-box-pr {

    aspect-ratio: 16 / 9;

    display: block;

    position: relative; /* ADDED */

}


@media (max-width: 768px) {
    /* Container für die Badges */
    .video-overlay-bottom-pr, 
    .video-overlay-bottom-web {
        position: absolute !important;
        bottom: 15px !important;
        left: 27px !important;
        right: 15px !important;
        width: calc(100% - 30px) !important; 
        
        /* Flex-Umbruch erzwingen */
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important; 
        align-content: flex-end !important;
        gap: 6px !important;
        
        /* Sicherstellen, dass nichts abgeschnitten wird */
        overflow: visible !important;
        white-space: normal !important;
    }

    /* Die einzelnen Badges */
    .badge-pr, .badge-web {
        display: inline-flex !important; /* Besserer Support für Umbruch als block */
        flex: 0 0 auto !important;      /* Verhindert, dass Badges schrumpfen */
        width: auto !important;          /* Verhindert volle Breite */
        white-space: nowrap !important;  /* Text im Badge bleibt einzeilig */
        
        font-size: 10px !important;
        padding: 4px 10px !important;
        background: rgba(255, 255, 255, 0.95) !important;
        border-radius: 15px !important;
    }
}



/* FIX: Videos absolute positioned to prevent CLS */

.video-box video,

.video-box2 video,

.video-box-port video,

.video-box-port img,

.video-box-pr video,

.video-box-pr img,

.video-box-web video,

.video-box-web img {

    position: absolute; /* ADDED: Prevents layout shifts */

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    transition: transform 0.6s cubic-bezier(0.17, 0.55, 0.55, 1);

}



.video-box-pr:hover video,

.video-box-pr:hover img,

.video-box-web:hover video,

.video-box-web:hover img {

    transform: scale(1.05);

}



/* FIX: Copyright label absolute positioned */

.video-copyright {

    position: absolute;

    bottom: 12px;

    left: 12px;

    font-size: 10px;

    text-transform: uppercase;

    color: rgba(255, 255, 255, 0.5);

    z-index: 10;

    padding: 2px 6px;

    border-radius: 3px;

}



/* ========================================

   3D SECTIONS

   ======================================== */

.three-d-section, .three-d-section-tx {

    display: flex;

    align-items: flex-start;

    padding: 30px;

    gap: 80px;

    margin-bottom: 80px; /* ADDED: Abstand zur nächsten Section */

}



.three-d-section {

    min-height: 80vh; /* CHANGED: min-height statt height */

    height: auto; /* ADDED: Erlaubt flexible Höhe */

}

.three-d-section-story {

    max-height: 90vh; 
    display:flex;
    padding:30px;


}



@media screen and (max-width: 768px) {
    
    .three-d-section-story {
        display: flex;
        flex-direction: column;
        justify-content: flex-start; 
        gap: 20px; 
        padding: 20px;
        max-height: 100%;
        min-height: 0;
    }

    
    .intro, .story {
        margin: 0;
        padding: 10px 0;
    }

   .nav-inner {
    width: 100%;
    max-width: 1600px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 15px;
}
}



.three-d-section-tx {

    flex-wrap: wrap;

    align-content: flex-start; /* CHANGED: flex-start statt space-around */

    min-height: auto; /* ADDED */

}



.model-container, .model-container-tx {

    flex: 1;

}



.model-container {

    display: block;

    position: sticky;

    width: 100%;

    aspect-ratio: 1 / 1;

    background-color: transparent;

    min-height: 300px;

    max-height: 600px; /* ADDED: Maximale Höhe */

}



.model-container-tx {

    height: auto;

    position: relative; /* ADDED: Nicht sticky */

}



model-viewer {

    width: 100%;

    height: 100%;

    --poster-color: transparent;

}



.text-column, .text-column-tx {

    flex: 1;

    display: flex;

    flex-direction: column;

    gap: 200px;

}



.text-column {

    padding-bottom: 300px;

}



.text-column-tx {

    position: relative; /* CHANGED: relative statt sticky */

    gap: 60px; /* ADDED: Abstand zwischen Elementen */

}



.scroll-text-block p, .hero-tagline {

    font-size: 1.5rem;

    font-weight: 300;

    line-height: 1.6;

    text-align: left;

    margin-bottom: 20px;

}



.hero-tagline {

    opacity: 0.7;

    min-height: 30px;

    letter-spacing: 0.02em;

    margin: 0 0 20px 0; /* ADDED: Feste Margins */

}



.portfolio-text p {

    margin-top: 30px !important;
    line-height: 1.5;

}



/* ========================================

   LOGO TICKER

   ======================================== */

.logo-ticker {

    width: 100%;

    overflow: hidden;

    gap: 130px !important;

    padding: 30px 0;

    position: relative;

}



.ticker-track {

    display: flex;

    width: 100%;

    animation: scroll 30s linear infinite;

    will-change: transform;

    justify-content: space-around;

}



.logo-item {

    width: 100px;

    height: 100px;

    display: flex;

    justify-content: center;

    align-items: center;

    flex-shrink: 0;

}



.logo-item img {

    max-width: 150px;

    max-height: 50px;

    width: auto;          /* Überschreibt die 100% von oben */

    height: auto;         /* Überschreibt die 100% von oben */

    object-fit: contain;  /* Sorgt dafür, dass das Logo ganz sichtbar bleibt */

    filter: none;         /* Testweise: Filter entfernen, um zu sehen ob es erscheint */

    opacity: 1;           /* Testweise: Volle Sichtbarkeit */

    transition: all 0.3s ease;

}



/* Wenn das Logo im Light Mode dunkel sein soll und im Dark Mode weiß */

body.dark-mode .logo-item img {

    filter: invert(1) brightness(2);

}


@media (max-width: 768px) {
    .ticker-track {
        /* Animation stoppen */
        animation: none; 
        /* Umbruch erlauben */
        flex-wrap: wrap; 
        /* Breite auf 100% begrenzen, damit Umbruch wirkt */
        width: 100%; 
        max-width: 500px; /* Zentriert die Logos schön */
        justify-content: left;
        gap: 20px;
    }

    .logo-item {
        /* Hier steuerst du, wie viele Logos pro Reihe (z.B. ca. 40% für 2er Reihe) */
        width: calc(50% - 20px); 
        height: 60px;
    }
}


/* Falls dein Logo im Original WEISS ist und im Light Mode SCHWARZ werden soll: */

.logo-item img {

    filter: invert(0.8); /* Macht aus weiß ein dunkles Grau/Schwarz */

}



body.dark-mode .logo-item img {

    filter: invert(0); /* Setzt es im Dark Mode auf das originale Weiß zurück */

}







/* ========================================

   LINK LISTS

   ======================================== */

.link-list {

    list-style: none;

    padding: 0;

    margin: 60px 0;

    border-top: 1px solid var(--border-color);

}



.link-list-link {

    display: flex;

    align-items: center;

    padding: 40px 0;

    text-decoration: none;

    font-size: 1.5rem;

    color: var(--text-color);

    font-weight: 400;

    transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);

    border-bottom: 1px solid var(--border-color);

    position: relative;

}



.link-list-link::before {

    content: "";

    background-image: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 11L10.0422 1M20 11L10.0422 21M20 11H0" stroke="black"></path></svg>');

    background-repeat: no-repeat;

    background-size: contain;

    width: 30px;

    height: 30px;

    position: absolute;

    left: -50px;

    opacity: 0;

    transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);

    will-change: opacity, left; /* ADDED: GPU hint */

}



body.dark-mode .link-list-link::before {

    background-image: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M20 11L10.0422 1M20 11L10.0422 21M20 11H0" stroke="white"></path></svg>');

}



.link-list-link:hover {

    padding-left: 60px;

}



.link-list-link:hover::before {

    left: 0;

    opacity: 1;

}



/* ========================================

   REVEAL ANIMATION - FIX: GPU optimized

   ======================================== */

.reveal {

    opacity: 0;

    filter: blur(20px);

    transform: translateY(30px);

    transition: all 1s cubic-bezier(0.17, 0.55, 0.55, 1);

    will-change: filter, opacity, transform; /* CHANGED: Explicit will-change */

}



.reveal.active {

    opacity: 1;

    filter: blur(0px);

    transform: translateY(0);

}



/* ========================================

   PROJECT HERO SECTIONS

   ======================================== */

.hero-pr {

    padding: 30px 30px 30px 30px;

    display: flex;

    flex-direction: column;

    gap: 20px;

}



.hero-video-container-pr, .hero-video-container-web {

    display: grid;

    gap: 20px;

    width: 100%;

}



.hero-video-container-pr {

    grid-template-columns: 1fr 1fr;

}



.video-overlay-top-pr, .video-overlay-top-web {

    position: absolute;

    top: 30px;

    left: 30px;

    z-index: 10;

}



.video-overlay-top-pr h2, .video-overlay-top-web h2 {

    font-size: 32px;

    font-weight: 500;

    color: white;

    margin: 0;

    position: relative;

    display: inline-block;

}



.video-overlay-top-pr h2::after, .video-overlay-top-web h2::after {

    content: "";

    position: absolute;

    left: 0;

    bottom: -4px;

    width: 100%;

    height: 2px;

    background-color: white;

    transform: scaleX(0);

    transform-origin: center;

    transition: transform 0.4s cubic-bezier(0.17, 0.55, 0.55, 1);

    will-change: transform; /* ADDED: GPU hint */

}



.video-box-pr:hover .video-overlay-top-pr h2::after,

.video-box-web:hover .video-overlay-top-web h2::after {

    transform: scaleX(1);

}



.video-overlay-bottom-pr, .video-overlay-bottom-web {

    position: absolute;

    bottom: 25px;

    left: 25px;

    right: 25px;

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    z-index: 10;

}



.badge-pr, .badge-web {

    background: rgba(255, 255, 255, 0.9);

    color: #0a0a0a;

    padding: 6px 14px;

    border-radius: 20px;

    font-size: 11px;

    font-weight: 600;

    text-transform: uppercase;

    letter-spacing: 0.5px;

}



.video-box-pr::after {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.4) 100%);

    pointer-events: none;

}



/* ========================================

   ERROR PAGE

   ======================================== */

.error-box {

    height: 100vh;

    display: flex;

    padding: 30px;

    justify-content: center;

    align-items: center;

}



.error {

    color: var(--text-color);

    text-align: center;

    display: flex;

    flex-direction: column;

    align-content: center;

    align-items: center;

}



/* ========================================

   FOOTER

   ======================================== */

footer {

    padding: 100px 30px 40px 30px;

    border-top: 1px solid var(--border-color);

    display: flex;

    flex-direction: column;

    gap: 80px;

}



.footer-top {

    display: grid;

    grid-template-columns: 5.5fr 1fr 1fr 1fr;

    gap: 180px;

}



.footer-logo-area h3 {

    font-size: 24px;

    margin-bottom: 20px;

    font-weight: 600;

}



.footer-logo-area p {

    max-width: 300px;

    opacity: 0.6;

    line-height: 1.6;

    font-size: 14px;

}



.footer-column h4 {

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1px;

    opacity: 0.4;

    margin-bottom: 25px;

}



.footer-column ul {

    list-style: none;

    padding: 0;

    margin: 0;

}



.footer-column li {

    margin-bottom: 12px;

}



.footer-column a {

    text-decoration: none;

    color: var(--text-color);

    font-size: 14px;

    opacity: 0.7;

    transition: opacity 0.3s ease;

}



.footer-column a:hover {

    opacity: 1;

}



.footer-bottom {

    display: flex;

    justify-content: space-between;

    padding-top: 40px;

    border-top: 1px solid var(--border-color);

    font-size: 12px;

    opacity: 0.4;

}



/* ========================================

   TABLET RESPONSIVE (1024px)

   ======================================== */

@media (max-width: 1024px) {

    html, body {

        overflow-x: hidden;

        width: 100%;

    }

    

    model-viewer {

        width: 100%;

        height: 500px; /* CHANGED: Kleinere Höhe auf Tablet */

        max-height: 500px;

    }



    .hero-headline {

        min-height: 100px;
        line-height: 1.5;

    }



    .hero-tagline {

        opacity: 0.7;

        min-height: 70px;

        letter-spacing: 0.02em;

    }



    .footer-top {

        grid-template-columns: 1fr 1fr;

        gap: 60px 20px;

    }



    .hero {

        padding: 100px 30px 30px 30px;

    }



    .logo-ticker {

        padding: 60px 0;

    }



    .three-d-section, .three-d-section-tx {

        flex-direction: column;

        align-items: stretch;

        padding: 30px;

        gap: 50px; /* CHANGED: Mehr Abstand */

        width: 100%;

        margin-bottom: 50px; /* ADDED */

    }

    

    .three-d-section {

        min-height: auto; /* CHANGED: Keine feste Höhe */

    }



    .hero-video-container {

        margin-top: 10px;

        flex-direction: column-reverse;

        gap: 30px;

    }



    .hero-video-container-port {

        flex-direction: column !important;

    }



    .image-story img {

        width: 150px;

        height: 150px;

        left: -40px;

        padding: 50px;

    }



    .video-box-port {

        aspect-ratio: 16 / 9 !important;

    }



    .model-container {

        height: auto; /* CHANGED */

        min-height: 400px; /* CHANGED */

        max-height: 500px; /* ADDED */

        position: static; /* CHANGED: Nicht mehr sticky */

        overflow: hidden;

        margin-bottom: 40px; /* ADDED: Abstand zum nächsten Element */

    }

    

    .model-container-tx {

        margin-bottom: 40px; /* ADDED */

    }



    .text-column {

        gap: 50px;

        padding-bottom: 50px; /* CHANGED: War 0, jetzt 50px */

    }

    

    .text-column-tx {

        position: relative; /* CHANGED: War sticky */

        width: 100%;

        gap: 40px; /* ADDED */

    }



    .hero-pr {

        padding: 30px 30px 30px 30px;

    }



    .hero-video-container-pr {

        grid-template-columns: 1fr;

    }



    footer {

        padding: 30px 30px 40px 30px;

        width: 100%;

    }



    .image-flex {

        display: flex;

    }



    #im, #datenschutz {

        text-align: left;

    }

    

    /* ADDED: Video Box 2 spacing */

    .video-box2 {

        margin-bottom: 30px;

    }

    

    /* ADDED: Link-list spacing */

    .link-list {

        margin: 40px 0;

    }

}



    .model-container-tx h2,

    .three-d-section h2 {

        font-size: 1.4rem;

        margin-bottom: 25px !important;

    }





/* KONTRAST FIX: Footer H4 Elemente */

.footer-column h4 {

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1px;

    opacity: 0.7; /* CHANGED: Von 0.4 zu 0.7 für besseren Kontrast */

    margin-bottom: 25px !important;

    font-weight: 600; /* ADDED: Macht Text fetter und lesbarer */

}





body.dark-mode .footer-column h4 {

    opacity: 0.8; 

}





    



/* ========================================

   MOBILE RESPONSIVE (768px)

   ======================================== */

@media (max-width: 768px) {

    html, body {

        overflow-x: hidden;

        width: 100%;

        max-width: 100vw;

    }

    

    .page-wrapper {

        overflow-x: hidden;

        width: 100%;

    }

    

    .nav-links, .cta-button {

        display: none;

    }



    .burger-menu {

        display: flex;

    }



    .burger-menu.active span:nth-child(1) {

        transform: translateY(8px) rotate(45deg);

    }



    .burger-menu.active span:nth-child(2) {

        opacity: 0;

    }



    .burger-menu.active span:nth-child(3) {

        transform: translateY(-8px) rotate(-45deg);

    }

    

    /* MOBILE SECTION FIXES */

    .hero {

        padding: 30px 20px 30px 20px;

        width: 100%;

    }

    

    .hero-video-container {

        display: flex;

        flex-direction: column;

        grid-template-columns: 1fr;

        gap: 20px;

        width: 100%;

    }

    

    .three-d-section,

    .three-d-section-tx {

        padding: 40px 20px;

        width: 100%;

        display: flex;

        gap: 40px;

        margin-bottom: 40px;

        justify-content: center;

        flex-wrap: nowrap;

       }

    

    .three-d-section {

        min-height: auto;

    }

    

    /* Model Container Mobile */

    .model-container {

        height: auto;

        min-height: 300px;

        max-height: 400px; /* CHANGED: Kleinere max-height */

        margin-bottom: 40px;

        position: static;

    }

    

    .model-container-tx {

        margin-bottom: 30px;

    }

    

    model-viewer {

        height: 350px; /* ADDED: Feste Höhe auf Mobile */

        max-height: 350px;

    }

    

    .video-box2 {

        width: 100%;

        max-width: 100%;

        margin-bottom: 30px; /* ADDED */

    }

    

    .link-list {

        width: 100%;

        margin: 30px 0; /* CHANGED: Weniger margin */

    }

    

    .link-list-link {

        font-size: 1.2rem; /* CHANGED: Kleinerer Font auf Mobile */

        padding: 30px 0; /* CHANGED: Weniger padding */

    }

    

    .text-column-tx {

        gap: 30px; /* ADDED: Weniger gap auf Mobile */

    }

    

    /* ADDED: H2 auf Mobile kleiner */

    .model-container-tx h2,

    .three-d-section h2 {

        font-size: 1.4rem;

        margin-bottom: 20px !important;

    }

    

    /* Footer sichtbar machen */

    mimicry-footer {

        display: block;

        width: 100%;

        min-height: auto;

    }

    

    footer {

        width: 100%;

        padding: 50px 20px 30px 20px;

    }

}



/* ========================================

   SMALL MOBILE (640px)

   ======================================== */

@media (max-width: 640px) {

    .footer-top {

        grid-template-columns: 1fr;

    }

}



/* ========================================

   PERFORMANCE OPTIMIZATIONS

   ======================================== */



/* Contain layout shifts for critical elements */

.hero,

.hero-text,

.hero-video-container,

.video-box,

.video-box2,

.model-container {

    contain: layout style;

}



/* Optimize animations for GPU */

@media (prefers-reduced-motion: no-preference) {

    * {

        scroll-behavior: smooth;

    }

}



/* Reduce animations for accessibility */

@media (prefers-reduced-motion: reduce) {

    *,

    *::before,

    *::after {

        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;

        scroll-behavior: auto !important;

    }

}



/* Print styles */

@media print {

    .navbar,

    .burger-menu,

    .mobile-overlay,

    .theme-toggle,

    .cta-button {

        display: none !important;

    }



    body {

        background: white;

        color: black;

    }

}
