/* The feature navigation is the entry point. Keep a section heading for
   assistive navigation without repeating the preceding overview on screen. */
.ppc { padding-top: 0; }
.ppc-section-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Keep the presentation pinned. A shorter scroll interval gives each gesture
   a clear response without moving whole pages through the frame. */
.ppc { --ppc-slide-travel: clamp(240px, 36vh, 360px); }
@supports (height: 1svh) {
    .ppc { --ppc-slide-travel: clamp(240px, 36svh, 360px); }
}
.ppc.ppc--pinned .ppc-track {
    height: calc(var(--ppc-viewport) - var(--ppc-pin-top) + (var(--ppc-slides) - 1) * var(--ppc-slide-travel));
}
.ppc.ppc--pinned .ppc-stage { overflow: clip; }
.ppc.ppc--pinned .ppc-panel {
    transform: translate3d(0, var(--ppc-scene-shift, 0px), 0) scale(var(--ppc-scene-scale, 1));
    transform-origin: center;
    opacity: 0;
    visibility: hidden;
    /* Clear outgoing copy immediately so two different headlines never overlap. */
    transition: opacity 260ms ease-out, visibility 0s linear 0s;
}
.ppc.ppc--pinned .ppc-panel.is-active {
    opacity: 1;
    visibility: visible;
    transition: opacity 260ms ease-out, visibility 0s linear 0s;
}

@media screen and (max-width: 1024px) {
    /* The selected category is already named in the sticky navigation. */
    .ppc--pinned .ppc-mobile__kicker { display: none; }
    /* Preserve the full-height mobile fit and avoid overlapping outgoing text. */
    .ppc.ppc--pinned .ppc-panel,
    .ppc.ppc--pinned .ppc-panel.is-active {
        transform: scale(var(--ppc-scene-scale, 1));
        transition: opacity 220ms ease-out, visibility 0s linear 0s;
    }
}

@media print {
    .ppc.ppc--pinned .ppc-track { height: auto; }
    .ppc.ppc--pinned .ppc-stage { overflow: visible; }
    .ppc.ppc--pinned .ppc-panel { transform: none; opacity: 1; visibility: visible; }
}
