.ajz-ec-section {
    --ajz-ec-black: #02050b;
    --ajz-ec-white: #f7f2e8;
    --ajz-ec-gold: #d3a754;
    --ajz-ec-gold-light: #f0d394;
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    color: var(--ajz-ec-white);
    background: var(--ajz-ec-black);
    isolation: isolate;
    z-index: 0;
}

/*
 * The desktop experience uses a native CSS sticky stage instead of GSAP pinning.
 * This avoids generated pin spacers, blank frames and reverse-scroll jumps.
 * The elevated layer is active only while the cinematic section is in view.
 */
.ajz-ec-section.ajz-ec-sticky-active {
    z-index: 999999;
}

.ajz-ec-section.ajz-ec-sticky-active .ajz-ec-stage {
    z-index: 999999;
}

.ajz-ec-section.ajz-ec-desktop {
    min-height: calc(var(--ajz-ec-stage-height, 100vh) + var(--ajz-ec-scroll-distance, 4300px));
}

.ajz-ec-section.ajz-ec-desktop .ajz-ec-stage {
    position: sticky;
    top: var(--ajz-ec-sticky-top, 0px);
    height: var(--ajz-ec-stage-height, 100vh);
}

.ajz-ec-section *,
.ajz-ec-section *::before,
.ajz-ec-section *::after {
    box-sizing: border-box;
}

.ajz-ec-stage {
    position: relative;
    z-index: 1;
    width: 100%;
    height: var(--ajz-ec-stage-height, 100vh);
    min-height: 520px;
    overflow: hidden;
    background: var(--ajz-ec-black);
}

.ajz-ec-space {
    position: absolute;
    inset: -8%;
    z-index: 0;
    background-color: #02050b;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    transform: scale(1.08);
    will-change: transform;
}

.ajz-ec-space::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 44%, rgba(5, 13, 29, .02), rgba(2, 5, 11, .30) 56%, rgba(0, 2, 7, .72) 100%),
        linear-gradient(180deg, rgba(0, 2, 7, .36), rgba(0, 2, 7, .04) 46%, rgba(0, 2, 7, .50));
}

.ajz-ec-stars {
    position: absolute;
    inset: -15%;
    z-index: 1;
    pointer-events: none;
    opacity: .44;
    background-repeat: repeat;
    will-change: transform;
}

.ajz-ec-stars-a {
    background-image:
        radial-gradient(circle, rgba(255,255,255,.95) 0 1px, transparent 1.6px),
        radial-gradient(circle, rgba(161,194,255,.82) 0 1px, transparent 1.5px),
        radial-gradient(circle, rgba(255,222,160,.72) 0 1px, transparent 1.4px);
    background-size: 137px 137px, 211px 211px, 293px 293px;
    background-position: 11px 17px, 73px 31px, 151px 89px;
    animation: ajzEcStarDriftA 80s linear infinite;
}

.ajz-ec-stars-b {
    opacity: .22;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.85) 0 1.2px, transparent 1.8px),
        radial-gradient(circle, rgba(180,205,255,.7) 0 .9px, transparent 1.5px);
    background-size: 421px 421px, 557px 557px;
    background-position: 39px 97px, 211px 61px;
    animation: ajzEcStarDriftB 115s linear infinite;
}

.ajz-ec-vignette {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        radial-gradient(circle at 72% 28%, rgba(91, 131, 211, .08), transparent 26%),
        radial-gradient(circle at 28% 74%, rgba(212, 162, 80, .065), transparent 25%);
}

@keyframes ajzEcStarDriftA {
    from { transform: translate3d(0, 0, 0) scale(1.02); }
    to { transform: translate3d(-3%, 2%, 0) scale(1.06); }
}

@keyframes ajzEcStarDriftB {
    from { transform: translate3d(0, 0, 0) scale(1.01); }
    to { transform: translate3d(2%, -2%, 0) scale(1.05); }
}

.ajz-ec-scene {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    padding: clamp(54px, 7vw, 108px) clamp(22px, 6vw, 100px);
    text-align: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    will-change: opacity, transform, filter;
}

.ajz-ec-scene:first-of-type {
    opacity: 1;
    visibility: visible;
}

.ajz-ec-opening {
    width: min(1200px, 100%);
    margin: 0 auto;
}

.ajz-ec-opening-kicker {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(18px, 3vw, 52px);
    width: min(800px, 90%);
    margin: 0 auto clamp(20px, 3vw, 40px);
    color: var(--ajz-ec-white);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(25px, 3.8vw, 54px);
    font-weight: 400;
    line-height: 1;
    letter-spacing: .28em;
    text-shadow: 0 0 13px rgba(255,248,224,.82), 0 0 35px rgba(210,160,76,.42);
}

.ajz-ec-opening-kicker::before,
.ajz-ec-opening-kicker::after {
    content: "";
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--ajz-ec-gold-light));
    box-shadow: 0 0 8px rgba(239,210,142,.36);
}

.ajz-ec-opening-kicker::after {
    background: linear-gradient(90deg, var(--ajz-ec-gold-light), transparent);
}

.ajz-ec-opening-title {
    margin: 0;
    color: var(--ajz-ec-white);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(39px, 5.9vw, 92px);
    font-weight: 400;
    line-height: 1.04;
    letter-spacing: .055em;
    text-transform: uppercase;
    text-shadow: 0 0 12px rgba(255,248,224,.78), 0 0 32px rgba(215,165,75,.48), 0 8px 35px rgba(0,0,0,.90);
}

.ajz-ec-opening-title span {
    display: block;
}

.ajz-ec-message {
    width: min(980px, 100%);
    margin: 0 auto;
    color: var(--ajz-ec-white);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 4.35vw, 68px);
    font-weight: 400;
    line-height: 1.18;
    letter-spacing: .03em;
    text-wrap: balance;
    text-shadow: 0 4px 30px rgba(0,0,0,.92), 0 0 40px rgba(0,0,0,.72);
}

.ajz-ec-message-question {
    width: min(1050px, 100%);
    font-size: clamp(33px, 4.15vw, 64px);
}

.ajz-ec-message-gold {
    color: var(--ajz-ec-gold-light);
    font-size: clamp(39px, 5.15vw, 80px);
    line-height: 1.08;
    letter-spacing: .085em;
    text-shadow: 0 0 17px rgba(239,210,142,.46), 0 8px 40px rgba(0,0,0,.95);
}

.ajz-ec-message-warning {
    width: min(1250px, 100%);
    font-size: clamp(44px, 5.7vw, 88px);
    line-height: 1;
    letter-spacing: .12em;
}

.ajz-ec-message-final {
    width: min(1250px, 100%);
    font-size: clamp(33px, 4.55vw, 72px);
    line-height: 1.18;
    letter-spacing: .045em;
}

.ajz-ec-message-final > span {
    display: block;
    margin-bottom: .5em;
    color: var(--ajz-ec-gold-light);
    font-family: Arial, Helvetica, sans-serif;
    font-size: .34em;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .18em;
}

.ajz-ec-message-readers {
    width: min(980px, 100%);
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(21px, 2.45vw, 36px);
    line-height: 1.55;
    letter-spacing: .01em;
}

.ajz-ec-scene-paper {
    pointer-events: auto;
    align-items: center;
    padding: clamp(28px, 4vh, 48px) clamp(16px, 3vw, 36px) clamp(52px, 7vh, 82px);
}

.ajz-ec-paper-panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(430px, 0.95fr) minmax(380px, 1.05fr);
    grid-template-areas: "cover content";
    align-items: center;
    gap: clamp(26px, 3.5vw, 52px);
    width: min(1460px, 96vw);
    max-height: calc(var(--ajz-ec-stage-height, 100vh) - 104px);
    margin: auto;
    padding: clamp(22px, 3.2vw, 52px);
    overflow: hidden;
    border: 1px solid rgba(138,163,200,.30);
    border-radius: 30px;
    background:
        radial-gradient(circle at 72% 45%, rgba(21,43,75,.30), transparent 42%),
        linear-gradient(115deg, rgba(1,8,17,.97), rgba(4,16,31,.95));
    box-shadow: 0 35px 100px rgba(0,0,0,.86), inset 0 0 0 1px rgba(255,255,255,.025);
}

.ajz-ec-paper-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .38;
    background-image:
        radial-gradient(circle at 15% 20%, rgba(255,255,255,.62) 0 1px, transparent 1.5px),
        radial-gradient(circle at 78% 28%, rgba(255,255,255,.44) 0 1px, transparent 1.4px),
        radial-gradient(circle at 63% 73%, rgba(255,255,255,.36) 0 1px, transparent 1.5px);
    background-size: 190px 190px, 260px 260px, 220px 220px;
}

.ajz-ec-paper-image-wrap,
.ajz-ec-paper-content {
    position: relative;
    z-index: 2;
    min-width: 0;
}

.ajz-ec-paper-image-wrap {
    grid-area: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    width: 100%;
}

.ajz-ec-paper-content {
    grid-area: content;
    text-align: center;
}

.ajz-ec-infographic {
    display: block;
    width: auto;
    max-width: 100%;
    height: min(76vh, calc(var(--ajz-ec-stage-height, 100vh) - 90px));
    max-height: calc(var(--ajz-ec-stage-height, 100vh) - 90px);
    object-fit: contain;
    object-position: center center;
    border: 1px solid rgba(211,167,84,.38);
    border-radius: 12px;
    background: #02050b;
    box-shadow: 0 28px 70px rgba(0,0,0,.68), 0 0 42px rgba(80,111,181,.12);
}

.ajz-ec-paper-small-title {
    margin-bottom: 4px;
    color: var(--ajz-ec-white);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(24px, 2.7vw, 48px);
    letter-spacing: .11em;
}

.ajz-ec-paper-title {
    margin: 0;
    color: var(--ajz-ec-white);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(40px, 4.8vw, 78px);
    font-weight: 400;
    line-height: 1.04;
    letter-spacing: .04em;
    text-wrap: balance;
}

.ajz-ec-paper-divider {
    display: flex;
    align-items: center;
    gap: 15px;
    width: min(420px, 82%);
    margin: 25px auto 22px;
}

.ajz-ec-paper-divider::before,
.ajz-ec-paper-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--ajz-ec-gold));
}

.ajz-ec-paper-divider::after {
    background: linear-gradient(90deg, var(--ajz-ec-gold), transparent);
}

.ajz-ec-paper-divider > span {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    border: 2px solid var(--ajz-ec-gold);
    transform: rotate(45deg);
}

.ajz-ec-paper-subtitle {
    max-width: 760px;
    margin: 0 auto 30px;
    color: var(--ajz-ec-gold-light);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(19px, 2.1vw, 32px);
    line-height: 1.38;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-wrap: balance;
}

.ajz-ec-zenodo-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: auto;
    min-width: 250px;
    max-width: 340px;
    min-height: 60px;
    padding: 13px 24px;
    color: var(--ajz-ec-gold-light);
    font: 500 clamp(18px, 1.7vw, 27px)/1.2 Arial, Helvetica, sans-serif;
    text-decoration: none;
    border: 2px solid var(--ajz-ec-gold);
    border-radius: 12px;
    background: rgba(1,7,14,.62);
    box-shadow: 0 14px 35px rgba(0,0,0,.42), inset 0 0 25px rgba(208,160,76,.035);
    margin: 0 auto;
    transition: color .25s ease, background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.ajz-ec-zenodo-button:hover,
.ajz-ec-zenodo-button:focus-visible {
    color: #07101d;
    background: var(--ajz-ec-gold-light);
    transform: translateY(-3px);
    box-shadow: 0 18px 45px rgba(0,0,0,.52), 0 0 30px rgba(208,160,76,.22);
}

.ajz-ec-zenodo-button:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 5px;
}

.ajz-ec-document-icon {
    position: relative;
    width: 24px;
    height: 29px;
    flex: 0 0 24px;
    border: 2px solid currentColor;
    border-radius: 2px;
}

.ajz-ec-document-icon::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    width: 11px;
    height: 2px;
    background: currentColor;
    box-shadow: 0 6px 0 currentColor, 0 12px 0 currentColor;
}

.ajz-ec-arrow {
    font-size: 1.5em;
    line-height: 1;
}

/* Keep the cinematic pinned layout on desktop even on shorter screens. */
@media (min-width: 900px) and (max-height: 720px) {
    .ajz-ec-stage { min-height: 520px; }
    .ajz-ec-scene { padding: 20px 30px; }
    .ajz-ec-opening-kicker { margin-bottom: 16px; font-size: clamp(22px, 3vw, 40px); }
    .ajz-ec-opening-title { font-size: clamp(38px, 5.15vw, 72px); }
    .ajz-ec-message { font-size: clamp(31px, 3.85vw, 56px); }
    .ajz-ec-message-question { font-size: clamp(29px, 3.65vw, 52px); }
    .ajz-ec-message-gold { font-size: clamp(35px, 4.45vw, 64px); }
    .ajz-ec-message-warning { font-size: clamp(39px, 4.9vw, 70px); }
    .ajz-ec-message-final { font-size: clamp(30px, 3.9vw, 58px); }
    .ajz-ec-message-readers { font-size: clamp(19px, 2.15vw, 30px); }
    .ajz-ec-scene-paper { padding: 22px 28px 48px; }
    .ajz-ec-paper-panel { grid-template-columns: minmax(360px, 0.92fr) minmax(320px, 1.08fr); gap: 22px; max-height: calc(var(--ajz-ec-stage-height, 100vh) - 76px); padding: 16px 24px; border-radius: 24px; }
    .ajz-ec-infographic { width: auto; height: min(72vh, calc(var(--ajz-ec-stage-height, 100vh) - 92px)); max-width: 100%; max-height: calc(var(--ajz-ec-stage-height, 100vh) - 92px); }
    .ajz-ec-paper-small-title { font-size: clamp(18px, 1.8vw, 28px); }
    .ajz-ec-paper-title { font-size: clamp(30px, 3.35vw, 48px); }
    .ajz-ec-paper-divider { margin: 13px auto 12px; }
    .ajz-ec-paper-subtitle { margin-bottom: 15px; font-size: clamp(15px, 1.55vw, 21px); }
    .ajz-ec-zenodo-button { min-height: 52px; padding: 10px 20px; font-size: clamp(15px, 1.3vw, 19px); }
}

/* Tablet/mobile fail-safe state. Before JavaScript finishes,
 * every scene remains visible in a normal document flow. The cinematic
 * overrides below activate only after .ajz-ec-ready is added. */
@media (max-width: 899px) {
    .ajz-ec-section:not(.ajz-ec-ready) {
        height: auto !important;
        min-height: 0;
        overflow: hidden;
    }

    .ajz-ec-section:not(.ajz-ec-ready) .ajz-ec-stage {
        position: relative;
        top: auto;
        height: auto;
        min-height: 0;
        overflow: visible;
    }

    .ajz-ec-section:not(.ajz-ec-ready) .ajz-ec-space {
        inset: 0;
    }

    .ajz-ec-section:not(.ajz-ec-ready) .ajz-ec-scene {
        position: relative;
        inset: auto;
        width: 100%;
        min-height: 92svh;
        padding: 64px 20px;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        filter: none !important;
    }

    .ajz-ec-section:not(.ajz-ec-ready) .ajz-ec-paper-panel {
        grid-template-columns: 1fr;
        grid-template-areas: "cover" "content";
        width: min(92vw, 720px);
        height: auto;
        max-height: none;
        overflow: visible;
    }
}

.ajz-ec-section.ajz-ec-static {
    height: auto !important;
    min-height: 0;
}

.ajz-ec-section.ajz-ec-static .ajz-ec-stage {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    overflow: visible;
}

.ajz-ec-section.ajz-ec-static .ajz-ec-space {
    inset: 0;
}

.ajz-ec-section.ajz-ec-static .ajz-ec-scene {
    position: relative;
    inset: auto;
    min-height: 90svh;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .ajz-ec-section *,
    .ajz-ec-section *::before,
    .ajz-ec-section *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =========================================================
   FINAL CARD — RESPONSIVE LAYOUT REFINEMENTS (v1.6.1)
   Keeps the infographic large without stretching it and
   preserves a balanced card on ultrawide, laptop, tablet,
   mobile and high-zoom viewports.
========================================================= */

@media (min-width: 900px) {
    .ajz-ec-scene-paper {
        padding:
            clamp(22px, 3.2vh, 42px)
            clamp(18px, 2.4vw, 42px)
            clamp(38px, 5.2vh, 68px);
    }

    .ajz-ec-paper-panel {
        grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
        gap: clamp(26px, 3.2vw, 58px);
        width: min(94vw, 1760px);
        height: min(
            calc(var(--ajz-ec-stage-height, 100vh) - 70px),
            930px
        );
        max-height: none;
        padding: clamp(22px, 2.6vw, 48px);
        overflow: hidden;
    }

    .ajz-ec-paper-image-wrap {
        width: 100%;
        height: 100%;
        min-height: 0;
        align-self: center;
        justify-content: center;
        overflow: hidden;
    }

    .ajz-ec-infographic {
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 100%;
        aspect-ratio: auto;
        object-fit: contain;
        object-position: center;
        flex: 0 1 auto;
    }

    .ajz-ec-paper-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        min-height: 0;
        padding: clamp(4px, 1vw, 18px) 0;
    }

    .ajz-ec-paper-small-title {
        font-size: clamp(22px, 2vw, 38px);
    }

    .ajz-ec-paper-title {
        font-size: clamp(38px, 3.8vw, 68px);
    }

    .ajz-ec-paper-divider {
        margin: clamp(16px, 2vh, 25px) auto;
    }

    .ajz-ec-paper-subtitle {
        margin-bottom: clamp(20px, 2.7vh, 30px);
        font-size: clamp(17px, 1.65vw, 27px);
    }

    .ajz-ec-zenodo-button {
        width: auto;
        min-width: 230px;
        max-width: 320px;
        min-height: 56px;
        padding: 12px 22px;
        font-size: clamp(16px, 1.25vw, 21px);
    }
}

/* Large laptops and narrow desktop windows */
@media (min-width: 900px) and (max-width: 1199px) {
    .ajz-ec-paper-panel {
        grid-template-columns: minmax(0, 1fr) minmax(290px, .88fr);
        gap: 22px;
        width: min(96vw, 1100px);
        height: min(
            calc(var(--ajz-ec-stage-height, 100vh) - 62px),
            720px
        );
        padding: 20px 24px;
        border-radius: 22px;
    }

    .ajz-ec-paper-title {
        font-size: clamp(32px, 4vw, 49px);
    }

    .ajz-ec-paper-subtitle {
        font-size: clamp(15px, 1.75vw, 21px);
        letter-spacing: .045em;
    }
}

/* Very wide displays */
@media (min-width: 1800px) {
    .ajz-ec-paper-panel {
        width: min(90vw, 1820px);
        grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr);
        gap: clamp(46px, 3vw, 72px);
    }

    .ajz-ec-paper-title {
        font-size: clamp(54px, 3.3vw, 72px);
    }

    .ajz-ec-paper-subtitle {
        font-size: clamp(22px, 1.35vw, 28px);
    }
}

/* Tablet / high browser zoom */
@media (max-width: 899px) {
    .ajz-ec-scene-paper {
        min-height: auto;
        padding: 82px 22px 96px;
    }

    .ajz-ec-paper-panel {
        grid-template-columns: 1fr;
        grid-template-areas: "cover" "content";
        gap: 34px;
        width: min(92vw, 720px);
        height: auto;
        max-height: none;
        padding: 34px 30px 40px;
        overflow: visible;
    }

    .ajz-ec-paper-image-wrap {
        width: 100%;
        height: auto;
        overflow: visible;
    }

    .ajz-ec-infographic {
        width: min(100%, 560px);
        height: auto;
        max-width: 100%;
        max-height: none;
    }

    .ajz-ec-paper-title {
        font-size: clamp(34px, 7vw, 52px);
    }

    .ajz-ec-paper-subtitle {
        font-size: clamp(17px, 3.8vw, 24px);
    }

    .ajz-ec-zenodo-button {
        width: auto;
        min-width: 220px;
        max-width: 300px;
        min-height: 56px;
        padding: 12px 20px;
    }
}

/* Phones */
@media (max-width: 600px) {
    .ajz-ec-scene-paper {
        min-height: auto;
        padding: 64px 12px 88px;
    }

    .ajz-ec-paper-panel {
        width: 100%;
        gap: 27px;
        padding: 22px 15px 30px;
        border-radius: 17px;
    }

    .ajz-ec-infographic {
        width: min(100%, 430px);
        max-height: none;
        border-radius: 8px;
    }

    .ajz-ec-paper-small-title {
        font-size: clamp(20px, 6.5vw, 28px);
    }

    .ajz-ec-paper-title {
        font-size: clamp(31px, 9vw, 43px);
        line-height: 1.08;
    }

    .ajz-ec-paper-divider {
        width: min(310px, 84%);
        margin: 18px auto 16px;
    }

    .ajz-ec-paper-subtitle {
        margin-bottom: 23px;
        font-size: clamp(16px, 4.8vw, 21px);
        line-height: 1.42;
        letter-spacing: .035em;
    }

    .ajz-ec-zenodo-button {
        width: min(100%, 280px);
        min-width: 0;
        min-height: 54px;
        padding: 11px 16px;
        gap: 12px;
        font-size: 16px;
    }

    .ajz-ec-document-icon {
        width: 20px;
        height: 25px;
        flex-basis: 20px;
    }
}

/* Small phones */
@media (max-width: 380px) {
    .ajz-ec-scene-paper {
        padding-left: 8px;
        padding-right: 8px;
    }

    .ajz-ec-paper-panel {
        padding-left: 12px;
        padding-right: 12px;
    }

    .ajz-ec-paper-title {
        font-size: 29px;
    }

    .ajz-ec-paper-subtitle {
        font-size: 15px;
    }
}

/* =========================================================
   MOBILE & TABLET CINEMATIC MODE (v1.7.0)
   Uses the same stable native sticky scroll renderer as desktop.
========================================================= */
@media (max-width: 899px) {
    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready {
        min-height: calc(var(--ajz-ec-stage-height, 100svh) + var(--ajz-ec-scroll-distance, 3600px));
        height: calc(var(--ajz-ec-stage-height, 100svh) + var(--ajz-ec-scroll-distance, 3600px)) !important;
        overflow: visible;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-stage {
        position: sticky;
        top: var(--ajz-ec-sticky-top, 0px);
        width: 100%;
        height: var(--ajz-ec-stage-height, 100svh);
        min-height: 480px;
        overflow: hidden;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-space {
        position: absolute;
        inset: -7%;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-scene {
        position: absolute;
        inset: 0;
        width: 100%;
        min-height: 0;
        height: 100%;
        padding: clamp(52px, 8vh, 78px) clamp(18px, 5vw, 32px);
        opacity: 0;
        visibility: hidden;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-scene-paper {
        padding: 14px 14px 18px;
        align-items: center;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-panel {
        width: min(94vw, 720px);
        height: auto;
        max-height: calc(var(--ajz-ec-stage-height, 100svh) - 28px);
        margin: auto;
        padding: clamp(16px, 3vw, 26px);
        gap: clamp(16px, 3vh, 26px);
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-image-wrap {
        flex: 0 0 auto;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-infographic {
        width: auto;
        max-width: min(100%, 470px);
        max-height: min(42svh, 420px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-content {
        flex: 0 0 auto;
    }
}

@media (max-width: 600px) {
    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-scene {
        padding: 48px 16px;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-opening-kicker {
        margin-bottom: 18px;
        font-size: clamp(21px, 7.2vw, 32px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-opening-title {
        font-size: clamp(31px, 9.2vw, 47px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-message {
        font-size: clamp(27px, 8vw, 39px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-message-question {
        font-size: clamp(26px, 7.6vw, 37px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-message-gold {
        font-size: clamp(31px, 8.8vw, 44px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-message-warning {
        font-size: clamp(34px, 9.4vw, 48px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-message-final {
        font-size: clamp(23px, 6.9vw, 34px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-message-readers {
        font-size: clamp(17px, 5vw, 24px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-scene-paper {
        padding: 8px;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-panel {
        width: 96vw;
        max-height: calc(var(--ajz-ec-stage-height, 100svh) - 16px);
        padding: 14px 12px 18px;
        gap: 14px;
        border-radius: 15px;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-infographic {
        max-width: min(100%, 360px);
        max-height: min(34svh, 300px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-small-title {
        font-size: clamp(17px, 5.2vw, 23px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-title {
        font-size: clamp(27px, 8vw, 37px);
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-divider {
        margin: 11px auto 10px;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-paper-subtitle {
        margin-bottom: 14px;
        font-size: clamp(14px, 4.1vw, 18px);
        line-height: 1.34;
    }

    .ajz-ec-section.ajz-ec-responsive-cinematic.ajz-ec-ready .ajz-ec-zenodo-button {
        width: auto;
        min-width: 0;
        max-width: 250px;
        min-height: 48px;
        padding: 9px 14px;
        font-size: 15px;
    }
}


/* Local horizontal overflow guard only. */
.ajz-ec-section,
.ajz-ec-stage,
.ajz-ec-scene {
    max-width: 100%;
    overflow-x: clip;
}

@supports not (overflow: clip) {
    .ajz-ec-section,
    .ajz-ec-stage,
    .ajz-ec-scene {
        overflow-x: hidden;
    }
}
