/* =========================================
   Partner Seite (Hintergrund-Reset)
   ========================================= */
.partner-page::before,
.partner-page::after {
    display: none !important;
}

/* =========================================
   Sound Toggle Button
   ========================================= */
.sound-toggle {
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 1.2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0.2rem 0.4rem;
}

.sound-toggle:hover {
    background: transparent;
    color: #aaffaa;
}

/* =========================================
   Layout für den Text (eher mittig platziert)
   ========================================= */
.partner-page main {
    flex-direction: column;
    justify-content: flex-start;
    gap: 3rem;
    align-items: center;
    padding-top: 5rem;
}

/* =========================================
   Partner-Zitat (Banner oben)
   ========================================= */
.partner-quote {
    position: relative;
    width: 100%;
    max-width: 800px;
    padding: 2rem 4rem;
    background: linear-gradient(to right, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 20%, rgba(0,0,0,0.6) 80%, rgba(0,0,0,0) 100%);
    backdrop-filter: blur(4px);
    border-top: 1px solid rgba(170, 255, 170, 0.3);
    border-bottom: 1px solid rgba(170, 255, 170, 0.3);
    text-align: center;
}

.partner-quote blockquote {
    font-size: 1.4rem;
    color: #dddddd;
    font-style: italic;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

.partner-quote cite {
    display: block;
    text-align: center;
    color: #388e3c;
    font-weight: bold;
    font-size: 1.15rem;
}

/* =========================================
   Stationäre Irrlichter am Zitat
   ========================================= */
.quote-wisp {
    position: absolute;
    background: #aaffaa;
    border-radius: 50%;
    box-shadow: 0 0 15px 4px rgba(100, 255, 150, 0.8);
    will-change: transform;
}

.quote-wisp-1 {
    width: 10px;
    height: 10px;
    top: 5px;
    right: 50px;
    animation: wispWobble 3s infinite alternate ease-in-out;
}

.quote-wisp-2 {
    width: 6px;
    height: 6px;
    top: 35px;
    right: 25px;
    animation: wispWobble 2.5s infinite alternate ease-in-out 1s;
}

/* =========================================
   Partner Rekrutierung (Join Karte)
   ========================================= */
.join-partner {
    background: rgba(170, 255, 170, 0.03);
    border: 1px solid rgba(170, 255, 170, 0.2);
}

.join-partner:hover {
    background: rgba(170, 255, 170, 0.08);
    border-color: rgba(204, 238, 255, 0.6);
    box-shadow: 0 0 20px rgba(170, 255, 170, 0.2), inset 0 0 15px rgba(204, 238, 255, 0.1);
}

.join-partner:hover h3 {
    color: #cceeff;
    text-shadow: 0 0 12px rgba(204, 238, 255, 0.5);
}

/* =========================================
   Irrlichter & Joko Höhlenmalerei
   ========================================= */
.cave-painting-area {
    position: fixed;
    left: 2%;
    top: 45%;
    width: 280px;
    transform: translateY(-50%);
    z-index: -1;
    pointer-events: none;
}

.cave-painting-img {
    width: 100%;
}

/* =========================================
   Universelle Maske für alle Objekte, die von Irrlichtern beleuchtet werden
   ========================================= */
.wisp-reveal-mask {
    -webkit-mask-image:
        radial-gradient(circle 120px at var(--wisp1-x, -999px) var(--wisp1-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 80px at var(--wisp2-x, -999px) var(--wisp2-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 140px at var(--wisp3-x, -999px) var(--wisp3-y, -999px), black 20%, transparent 80%),
        linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
    mask-image:
        radial-gradient(circle 120px at var(--wisp1-x, -999px) var(--wisp1-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 80px at var(--wisp2-x, -999px) var(--wisp2-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 140px at var(--wisp3-x, -999px) var(--wisp3-y, -999px), black 20%, transparent 80%),
        linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
    -webkit-mask-composite: lighten;
    mask-composite: add;
}

.cave-painting-img.wisp-reveal-mask {
    -webkit-mask-image:
        radial-gradient(circle 120px at var(--wisp1-x, -999px) var(--wisp1-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 80px at var(--wisp2-x, -999px) var(--wisp2-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 140px at var(--wisp3-x, -999px) var(--wisp3-y, -999px), black 20%, transparent 80%);
    mask-image:
        radial-gradient(circle 120px at var(--wisp1-x, -999px) var(--wisp1-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 80px at var(--wisp2-x, -999px) var(--wisp2-y, -999px), black 20%, transparent 80%),
        radial-gradient(circle 140px at var(--wisp3-x, -999px) var(--wisp3-y, -999px), black 20%, transparent 80%);
}

/* =========================================
   Felsen in der Dunkelheit
   ========================================= */
.rock-area {
    position: fixed;
    z-index: -1;
    pointer-events: none;
    transform: translateY(-50%);
}

.rock-1 {
    left: 4%;
    top: 68%;
    width: 220px;
}

.rock-2 {
    left: 1%;
    top: 18%;
    width: 170px;
    transform: translateY(-50%) scaleX(-1);
}

.rock-img {
    width: 100%;
}

.wisp-container {
    position: fixed;
    top: 85%;
    left: 1%;
    width: 80px;
    height: 80px;
    z-index: 50;
    pointer-events: none;
    will-change: transform;
}

.wisp-container.is-active {
    animation: wispPath 16s ease-in-out forwards;
}

@keyframes wispPath {
    0%   { transform: translate3d(0vw, 0vh, 0); }
    32%  { transform: translate3d(7vw, -40vh, 0); }
    50%  { transform: translate3d(1vw, -70vh, 0); }
    68%  { transform: translate3d(7vw, -40vh, 0); }
    100% { transform: translate3d(0vw, 0vh, 0); }
}

.wisp-trigger-zone {
    position: fixed;
    top: 75%;
    left: 0;
    width: 15vw;
    height: 25vh;
    z-index: 100;
}

/* =========================================
   Mobile Irrlichter (im Kasten)
   ========================================= */
.mobile-wisps {
    display: none;
}

.mobile-wisps .wisp {
    position: relative;
    top: 0; 
    left: 0;
}

@media (max-width: 768px) {
    .partner-page main {
        justify-content: flex-start;
        padding-right: 1.5rem;
        padding-left: 1.5rem;
        gap: 2.5rem;
    }

    .sound-toggle {
        font-size: 1rem !important;
    }
    
    .partner-quote {
        padding: 1.5rem;
        background: rgba(0, 0, 0, 0.5);
    }

    .partner-page .bg-video {
        object-position: 80% center;
    }

    .rock-area,
    .cave-painting-area,
    .wisp-container,
    .wisp-trigger-zone {
        display: none !important;
    }
    
    .mobile-wisps {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 3.5rem;
        margin-top: 3rem;
        margin-right: 25px;
    }
}