/* ==========================================================
   9GRAD OST · EVENT SCENES V8
   Fullscreen image + scroll-linked editorial panel
   ========================================================== */

.neo-event-scenes {
    --scene-red: #690f00;
    --scene-paper: #f5f3ef;
    --scene-ink: #171717;
    --scene-muted: #676765;
    --scene-header: 76px;

    position: relative;

    width: 100%;

    background: var(--scene-paper);

    overflow: hidden;
}


/* ----------------------------------------------------------
   INTRO
   ---------------------------------------------------------- */

.neo-event-scenes__intro {
    width: min(1240px, calc(100% - 80px));

    margin: 0 auto;

    padding:
        clamp(76px, 7vw, 110px)
        0
        clamp(72px, 6vw, 100px);
}

.neo-event-scenes__eyebrow {
    display: flex;
    align-items: center;

    gap: 14px;

    margin-bottom: 25px;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: .22em;

    color: #696b69;
}

.neo-event-scenes__eyebrow span {
    display: block;

    width: 38px;
    height: 1px;

    background: var(--scene-red);
}


.neo-event-scenes__intro-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(300px, .55fr);

    gap: clamp(60px, 9vw, 145px);

    align-items: end;
}


.neo-event-scenes__intro h2 {
    max-width: 760px;

    margin: 0;

    font-size: clamp(56px, 6vw, 90px);
    font-weight: 400;

    line-height: .91;
    letter-spacing: -.057em;

    color: var(--scene-ink);
}


.neo-event-scenes__intro p {
    max-width: 420px;

    margin: 0 0 5px;

    font-size: 15px;

    line-height: 1.75;

    color: var(--scene-muted);
}


/* ==========================================================
   SCENE
   ========================================================== */

.neo-event-scene {
    --panel-x: 108%;
    --image-y: 0px;
    --image-scale: 1.025;

    position: relative;

    width: 100%;

    /*
     * KEINE künstliche Scrollstrecke.
     * Eine Szene = ungefähr ein Viewport.
     */
    height: calc(100svh - var(--scene-header));
    min-height: 620px;
    max-height: 880px;

    margin: 0 0 32px;

    background: var(--scene-paper);

    overflow: hidden;
}


/* letzter Block ohne unnötigen Abstand */

.neo-event-scene:last-child {
    margin-bottom: 0;
}


/* ----------------------------------------------------------
   FRAME
   ---------------------------------------------------------- */

.neo-event-scene__frame {
    position: relative !important;

    top: auto !important;

    width: 100%;
    height: 100%;

    min-height: 0 !important;

    overflow: hidden;

    background: var(--scene-paper);
}


/* ==========================================================
   IMAGE
   ========================================================== */

.neo-event-scene__visual {
    position: absolute !important;

    inset: 0;

    width: 100%;
    height: 100%;

    margin: 0 !important;

    overflow: hidden;

    opacity: 1 !important;

    transform: none !important;

    background: #d8d6d2;
}


.neo-event-scene__visual img {
    display: block;

    width: 100%;
    height: calc(100% + 44px);

    object-fit: cover;

    transform:
        translate3d(
            0,
            var(--image-y),
            0
        )
        scale(var(--image-scale));

    transform-origin: center center;

    will-change: transform;
}


/* nur etwas Bildtiefe */

.neo-event-scene__visual::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.035) 0%,
            rgba(0,0,0,0) 54%,
            rgba(0,0,0,.055) 100%
        );
}


/* ==========================================================
   INDEX
   ========================================================== */

.neo-event-scene__index {
    position: absolute;

    left: clamp(22px, 3vw, 50px);
    bottom: clamp(20px, 3vw, 44px);

    z-index: 2;

    font-size: clamp(64px, 7vw, 108px);
    font-weight: 300;

    line-height: .76;
    letter-spacing: -.07em;

    color: rgba(255,255,255,.14);

    pointer-events: none;
}


/* Firmenevent Nummer rechts */

.neo-event-scene--right
.neo-event-scene__index {
    left: auto;

    right: clamp(22px, 3vw, 50px);
}


/* ==========================================================
   CONTENT PANEL
   ========================================================== */

.neo-event-scene__copy {
    position: absolute !important;

    top: 0;
    right: 0;
    bottom: 0;

    z-index: 5;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: clamp(410px, 36vw, 590px);

    max-width: none !important;

    margin: 0 !important;

    padding:
        clamp(38px, 4.5vw, 68px)
        clamp(40px, 4.5vw, 70px);

    background: var(--scene-paper);

    opacity: 1 !important;

    transform:
        translate3d(
            var(--panel-x),
            0,
            0
        ) !important;

    will-change: transform;

    box-shadow:
        -18px
        0
        45px
        rgba(20,20,20,.045);
}


/* mittlere Szene von links */

.neo-event-scene--right
.neo-event-scene__copy {
    right: auto;
    left: 0;

    box-shadow:
        18px
        0
        45px
        rgba(20,20,20,.045);
}


/* ==========================================================
   TYPO
   ========================================================== */

.neo-event-scene__label {
    margin-bottom: 18px;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: .20em;

    color: var(--scene-red);
}


.neo-event-scene__copy h3 {
    max-width: 470px;

    margin: 0;

    font-size: clamp(40px, 3.8vw, 59px);
    font-weight: 400;

    line-height: .96;
    letter-spacing: -.052em;

    color: var(--scene-ink);
}


.neo-event-scene__copy p {
    max-width: 425px;

    margin:
        clamp(21px, 2.2vw, 29px)
        0
        0;

    font-size: 14px;

    line-height: 1.72;

    color: var(--scene-muted);
}


.neo-event-scene__meta {
    margin-top: 25px;

    font-size: 9px;
    font-weight: 700;

    line-height: 1.5;
    letter-spacing: .145em;

    color: #80807c;
}


/* ==========================================================
   CTA
   ========================================================== */

.neo-event-scene__link {
    display: inline-flex;
    align-items: center;

    align-self: flex-start;

    gap: 9px;

    margin-top: 28px;

    font-size: 12px;
    font-weight: 600;

    color: var(--scene-red);

    text-decoration: none;
}


.neo-event-scene__link::before {
    content: "";

    display: block;

    width: 29px;
    height: 1px;

    background: var(--scene-red);

    transition:
        width .35s cubic-bezier(.16,1,.3,1);
}


.neo-event-scene__link span {
    transition:
        transform .25s ease;
}


.neo-event-scene__link:hover::before {
    width: 45px;
}


.neo-event-scene__link:hover span {
    transform: translateX(3px);
}


/* ==========================================================
   DESKTOP – leichte Bildkomposition
   ========================================================== */

@media (min-width: 1100px) {

    /*
     * Wenn Panel vollständig hereingefahren ist,
     * bleiben ca. 60–64 % des Fotos sichtbar.
     *
     * Das Bild selbst bleibt aber immer Fullscreen im
     * Hintergrund – das Panel liegt darüber.
     */

    .neo-event-scene__copy {
        min-width: 500px;
    }

}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 1000px) {

    .neo-event-scenes__intro {
        width: calc(100% - 50px);
    }

    .neo-event-scenes__intro-grid {
        grid-template-columns: 1fr;

        gap: 28px;
    }

    .neo-event-scenes__intro p {
        max-width: 560px;
    }


    .neo-event-scene__copy {
        width: min(46vw, 520px);

        padding:
            38px
            34px;
    }


    .neo-event-scene__copy h3 {
        font-size: clamp(38px, 4.8vw, 52px);
    }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 760px) {

    .neo-event-scenes {
        --scene-header: 72px;
    }


    .neo-event-scenes__intro {
        width: auto;

        margin: 0;

        padding:
            65px
            20px
            66px;
    }


    .neo-event-scenes__intro-grid {
        display: block;
    }


    .neo-event-scenes__intro h2 {
        font-size:
            clamp(
                46px,
                12.5vw,
                62px
            );
    }


    .neo-event-scenes__intro p {
        margin-top: 23px;
    }


    .neo-event-scene {
        height: auto;

        min-height: 0;
        max-height: none;

        margin-bottom: 28px;

        overflow: visible;
    }


    .neo-event-scene__frame {
        height: auto;

        overflow: visible;
    }


    .neo-event-scene__visual {
        position: relative !important;

        width: 100%;
        height: auto;

        aspect-ratio: 4 / 4.1;
    }


    .neo-event-scene__visual img {
        height: 107%;

        transform:
            translate3d(
                0,
                -3%,
                0
            )
            scale(1.015);
    }


    .neo-event-scene__copy,
    .neo-event-scene--right
    .neo-event-scene__copy {
        position: relative !important;

        top: auto;
        right: auto;
        bottom: auto;
        left: auto;

        width: 100%;
        min-width: 0;

        padding:
            31px
            21px
            58px;

        transform: none !important;

        box-shadow: none;

        background: var(--scene-paper);
    }


    .neo-event-scene__copy h3 {
        font-size:
            clamp(
                39px,
                11vw,
                52px
            );
    }


    .neo-event-scene__index {
        font-size: 70px;
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

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

    .neo-event-scene__copy,
    .neo-event-scene--right
    .neo-event-scene__copy {
        --panel-x: 0%;

        transform:
            translate3d(
                0,
                0,
                0
            ) !important;
    }

}
