@media (max-width: 767px) {
    /* Keep vertical page scrolling natural while the second screen accepts horizontal swipes. */
    .home-new-devices__carousel {
        touch-action: pan-y;
    }

    .home-new-devices__dots button {
        width: 30px;
        height: 32px;
    }

    .home-new-devices__dots button.is-active {
        width: 36px;
    }

    /* The Android PNG is slightly narrower than the iPhone/Glider assets. The base selector's higher specificity was overriding the intended 96.3% correction, making Android render visibly taller. */
    .home-new-device-layout .home-new-device-layout__side--right > img {
        max-width: 96.3%;
    }

    /* Screen 3: fit more widget previews into the phone viewport. */
    .home-new-apps {
        min-height: max(820px, 100svh);
    }

    .home-new-apps .home-new-copy {
        top: 150px;
        font-size: 13.5px;
        line-height: 1.22;
    }

    .home-app-picker {
        top: 230px;
    }

    .home-app-widget-carousel {
        top: 300px;
        grid-template-columns: 28px minmax(0, 1fr) 28px;
        width: calc(100% - 8px);
        height: 470px;
    }

    .home-app-widget-carousel__track {
        gap: 14px;
    }

    .home-app-widget-carousel__nav {
        width: 28px;
        height: 46px;
        font-size: 28px;
    }

    .home-app-widget-card {
        flex-basis: clamp(96px, 28vw, 110px);
        padding-bottom: 8px;
    }

    .home-app-widget-card .home-new-widget-preview {
        width: 100%;
        max-width: 110px;
    }

    /* Keep the multi-line Privacy heading clear of the phone illustration, including 320px screens. */
    .home-new-privacy {
        padding-top: 160px;
    }

    .home-new-privacy__visual > img {
        max-width: 70%;
        max-height: min(42svh, 350px);
    }

    /* Keep the AutoHotkey screen isolated from the following Privacy section. */
    .home-new-autohotkey {
        min-height: max(100svh, 820px);
    }

    .home-new-autohotkey:has(.home-new-autohotkey__details[open]) {
        min-height: max(100svh, 1720px);
    }

    /* Keep the final screen at least one viewport tall and snap to its own start. */
    .home-new-download {
        min-height: max(100svh, 800px);
        padding: 112px 18px 240px;
        scroll-snap-align: start;
    }

    .home-new-download .footer {
        height: 220px;
    }

    .home-new-download .footer__top {
        padding-top: 22px;
    }
}